summaryrefslogtreecommitdiff
path: root/fs
AgeCommit message (Collapse)Author
2010-08-09convert remaining ->clear_inode() to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09Make ->drop_inode() just return whether inode needs to be droppedAl Viro
... and let iput_final() do the actual eviction or retention Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09fs/inode.c:clear_inode() is goneAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09fs/inode.c:evict() doesn't care about delete vs. non-delete paths nowAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09->delete_inode() is goneAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09convert ext4 to ->evict_inode()Al Viro
pretty much brute-force... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09convert logfs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09logfs: get rid of magical inodesAl Viro
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-09convert nilfs2 to ->evict_inode()Al Viro
[folded build fix from sfr] Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09convert exofs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09convert reiserfs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09convert btrfs to ->evict_inode()Al Viro
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-09switch gfs2 to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09convert ocfs2 to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch ncpfs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch udf to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch ubifs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch jfs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch hpfs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch hppfs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09try to get rid of races in hostfs open()Al Viro
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-09leak in hostfs_unlink()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09hostfs: fix races in dentry_name() and inode_name()Al Viro
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-09new helper: __dentry_path()Al Viro
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-09hostfs: sanitize symlinksAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09hostfs: get rid of inode_dentry_name()Al Viro
it's equivalent to dentry_name() anyway Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09hostfs: get rid of file_type(), fold init_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch stat_file() to passing a single struct rather than fsckloads of pointersAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09hostfs: pass pathname to init_inode()Al Viro
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-09get rid of hostfs_read_inode()Al Viro
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-09hostfs: don't keep a field in each inode when we are using it only in rootAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09stop icache pollution in hostfs, switch to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch affs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch omfs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch bfs to ->evict_inode(), clean upAl Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09convert ext3 to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch ufs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09covert fatfs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch smbfs to evict_inode()Al Viro
NB: treatment of inode hash is completely braindead there Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch sysv to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09merge ext2 delete_inode and clear_inode, switch to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09Don't dirty the victim in ext2_xattr_delete_inode()Al Viro
... 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-09Take dirtying the inode to callers of ext2_free_blocks()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09ext2: switch to dquot_free_block_nodirty()Al Viro
brute-force conversion Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch minix to ->evict_inode(), fix write_inode/delete_inode raceAl Viro
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-09switch sysfs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09switch procfs to ->evict_inode()Al Viro
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-09simplify get_cramfs_inode()Al Viro
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-09new helper: end_writeback()Al Viro
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-09Take ->i_bdev/->i_cdev handling out of clear_inode()Al Viro
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>