diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2010-06-05 19:28:32 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-08-09 16:48:01 -0400 |
commit | deee3ce466a3e2cfb54c93b8fd22bbccd19ea7d6 (patch) | |
tree | e8335cb5ae3c3ee5ff9395b880e88d30c76a033e /fs/fat/inode.c | |
parent | d3b4f9ae184b0a3982dbe000ddf88952f090dc28 (diff) | |
download | linux-stable-deee3ce466a3e2cfb54c93b8fd22bbccd19ea7d6.tar.gz linux-stable-deee3ce466a3e2cfb54c93b8fd22bbccd19ea7d6.tar.bz2 linux-stable-deee3ce466a3e2cfb54c93b8fd22bbccd19ea7d6.zip |
covert fatfs to ->evict_inode()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/fat/inode.c')
-rw-r--r-- | fs/fat/inode.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/fs/fat/inode.c b/fs/fat/inode.c index ec6a699a4023..830058057d33 100644 --- a/fs/fat/inode.c +++ b/fs/fat/inode.c @@ -263,7 +263,7 @@ static const struct address_space_operations fat_aops = { * check if the location is still valid and retry if it * isn't. Otherwise we do changes. * 5. Spinlock is used to protect hash/unhash/location check/lookup - * 6. fat_clear_inode() unhashes the F-d-c entry. + * 6. fat_evict_inode() unhashes the F-d-c entry. * 7. lookup() and readdir() do igrab() if they find a F-d-c entry * and consider negative result as cache miss. */ @@ -448,16 +448,15 @@ out: EXPORT_SYMBOL_GPL(fat_build_inode); -static void fat_delete_inode(struct inode *inode) +static void fat_evict_inode(struct inode *inode) { truncate_inode_pages(&inode->i_data, 0); - inode->i_size = 0; - fat_truncate_blocks(inode, 0); - clear_inode(inode); -} - -static void fat_clear_inode(struct inode *inode) -{ + if (!inode->i_nlink) { + inode->i_size = 0; + fat_truncate_blocks(inode, 0); + } + invalidate_inode_buffers(inode); + end_writeback(inode); fat_cache_inval_inode(inode); fat_detach(inode); } @@ -674,12 +673,11 @@ static const struct super_operations fat_sops = { .alloc_inode = fat_alloc_inode, .destroy_inode = fat_destroy_inode, .write_inode = fat_write_inode, - .delete_inode = fat_delete_inode, + .evict_inode = fat_evict_inode, .put_super = fat_put_super, .write_super = fat_write_super, .sync_fs = fat_sync_fs, .statfs = fat_statfs, - .clear_inode = fat_clear_inode, .remount_fs = fat_remount, .show_options = fat_show_options, |