summaryrefslogtreecommitdiff
path: root/fs
AgeCommit message (Collapse)AuthorFilesLines
2010-08-10Make ->drop_inode() just return whether inode needs to be droppedAl Viro8-98/+55
... and let iput_final() do the actual eviction or retention Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10fs/inode.c:clear_inode() is goneAl Viro1-24/+4
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10fs/inode.c:evict() doesn't care about delete vs. non-delete paths nowAl Viro1-4/+4
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10->delete_inode() is goneAl Viro1-2/+0
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10convert ext4 to ->evict_inode()Al Viro4-10/+16
pretty much brute-force... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10convert logfs to ->evict_inode()Al Viro3-36/+31
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10logfs: get rid of magical inodesAl Viro6-41/+31
ordering problems at ->kill_sb() time are solved by doing iput() of these suckers in ->put_super() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10convert nilfs2 to ->evict_inode()Al Viro3-24/+26
[folded build fix from sfr] Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10convert exofs to ->evict_inode()Al Viro3-6/+6
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10convert reiserfs to ->evict_inode()Al Viro2-10/+11
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10convert btrfs to ->evict_inode()Al Viro3-4/+8
NB: do we want btrfs_wait_ordered_range() on eviction of inodes with positive i_nlink on subvolume with zero root_refs? If not, btrfs_evict_inode() can be simplified by unconditionally bailing out in case of i_nlink > 0 in the very beginning... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch gfs2 to ->evict_inode()Al Viro1-24/+15
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10convert ocfs2 to ->evict_inode()Al Viro3-11/+16
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch ncpfs to ->evict_inode()Al Viro1-6/+6
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch udf to ->evict_inode()Al Viro4-35/+21
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch ubifs to ->evict_inode()Al Viro1-4/+8
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch jfs to ->evict_inode()Al Viro3-25/+20
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch hpfs to ->evict_inode()Al Viro3-7/+9
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch hppfs to ->evict_inode()Al Viro1-4/+3
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10try to get rid of races in hostfs open()Al Viro3-12/+37
In case of mode mismatch, do *not* blindly close the descriptor another openers might be using right now. Open the underlying file with currently sufficient mode, then * if current mode has grown so that it's sufficient for us now, just close our new fd * if current mode has grown and our fd is *not* enough to cover it, close and repeat. * otherwise, install our fd if the file hadn't been opened at all or dup2() our fd over the current one (and close our fd). Critical section is protected by mutex; yes, system-wide. All we do under it is a bunch of comparison and maybe an overwriting dup2() on host. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10leak in hostfs_unlink()Al Viro1-2/+3
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10hostfs: fix races in dentry_name() and inode_name()Al Viro1-46/+60
calculating size, then doing allocation, then filling the path is a Bad Idea(tm), since the ancestors can be renamed, leading to buffer overrun. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10new helper: __dentry_path()Al Viro1-5/+22
builds path relative to fs root, called under dcache_lock, doesn't append any nonsense to unlinked ones. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10hostfs: sanitize symlinksAl Viro1-26/+35
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10hostfs: get rid of inode_dentry_name()Al Viro1-35/+20
it's equivalent to dentry_name() anyway Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10hostfs: get rid of file_type(), fold init_inode()Al Viro3-93/+45
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch stat_file() to passing a single struct rather than fsckloads of pointersAl Viro3-68/+58
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10hostfs: pass pathname to init_inode()Al Viro1-30/+15
We will calculate it in all callers anyway, so there's no need to duplicate that inside. Moreover, that way we lose all failure exits in init_inode(), so it doesn't need to return anything. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10get rid of hostfs_read_inode()Al Viro1-53/+16
There are only two call sites; in one (hostfs_iget()) it's actually a no-op and in another (fill_super()) it's easier to expand the damn thing and use what we know about its arguments to simplify it. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10hostfs: don't keep a field in each inode when we are using it only in rootAl Viro1-24/+15
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10stop icache pollution in hostfs, switch to ->evict_inode()Al Viro1-22/+8
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch affs to ->evict_inode()Al Viro3-17/+14
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch omfs to ->evict_inode()Al Viro1-3/+6
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch bfs to ->evict_inode(), clean upAl Viro1-38/+32
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10convert ext3 to ->evict_inode()Al Viro3-35/+28
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch ufs to ->evict_inode()Al Viro4-21/+28
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10covert fatfs to ->evict_inode()Al Viro1-11/+9
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch smbfs to evict_inode()Al Viro1-4/+4
NB: treatment of inode hash is completely braindead there Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch sysv to ->evict_inode()Al Viro2-6/+10
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10merge ext2 delete_inode and clear_inode, switch to ->evict_inode()Al Viro4-37/+36
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10Don't dirty the victim in ext2_xattr_delete_inode()Al Viro1-2/+0
... it's beyond fs-writeback reach already - writeback won't be started at that point. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10Take dirtying the inode to callers of ext2_free_blocks()Al Viro3-3/+7
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10ext2: switch to dquot_free_block_nodirty()Al Viro2-8/+16
brute-force conversion Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch minix to ->evict_inode(), fix write_inode/delete_inode raceAl Viro2-9/+12
We need to wait for completion of possible writeback in progress before we clear on-disk inode during deletion. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch sysfs to ->evict_inode()Al Viro3-5/+5
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10switch procfs to ->evict_inode()Al Viro1-3/+3
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10simplify get_cramfs_inode()Al Viro1-50/+38
simply don't hash the inodes that don't have real inumber instead of skipping them during iget5_locked(); as the result, simple iget_locked() would do and we can get rid of cramfs ->drop_inode() as well. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10new helper: end_writeback()Al Viro2-1/+13
Essentially, the minimal variant of ->evict_inode(). It's a trimmed-down clear_inode(), sans any fs callbacks. Once it returns we know that no async writeback will be happening; every ->evict_inode() instance should do that once and do that before doing anything ->write_inode() could interfere with (e.g. freeing the on-disk inode). Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10Take ->i_bdev/->i_cdev handling out of clear_inode()Al Viro1-4/+4
All call chains to clear_inode() pass through evict_inode() and clear_inode() should be called by evict_inode() exactly once. So we can pull i_bdev/i_cdev detaching up to evict_inode() itself. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-10generic_detach_inode() can be static nowAl Viro1-2/+1
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>