switch affs to ->evict_inode()
Subsystems (2)
PATCH 24/58 switch affs to ->evict_inode()
Signed-off-by Al Viro <[email protected]>
--- fs/affs/affs.h | 3 +-- fs/affs/inode.c | 25 ++++++++++++------------- fs/affs/super.c | 3 +-- 3 files changed, 14 insertions(+), 17 deletions(-)
fs/affs/affs.h +1 -2
@@ -171,8 +171,7 @@ extern int affs_rename(struct inode *old_dir, struct dentry *old_dentry,extern unsigned long affs_parent_ino (struct inode *dir);extern struct inode *affs_new_inode (struct inode *dir);extern int affs_notify_change (struct dentry *dentry,struct iattr *attr); -extern void affs_delete_inode (struct inode *inode); -extern void affs_clear_inode (struct inode *inode); +extern void affs_evict_inode (struct inode *inode);extern struct inode *affs_iget (struct super_block *sb,unsigned long ino); extern int affs_write_inode(struct inode *inode,
fs/affs/inode.c +12 -13
@@ -252,23 +252,19 @@ out: }void -affs_delete_inode (struct inode *inode) -{ -pr_debug ("AFFS: delete_inode(ino=%lu, nlink=%u)\n" , inode->i_ino, inode->i_nlink); -truncate_inode_pages (&inode->i_data,0 ); - inode->i_size =0 ; -affs_truncate (inode); -clear_inode (inode); -affs_free_block (inode->i_sb, inode->i_ino); -} - -void -affs_clear_inode (struct inode *inode) +affs_evict_inode (struct inode *inode) {unsigned long cache_page; +pr_debug ("AFFS: evict_inode(ino=%lu, nlink=%u)\n" , inode->i_ino, inode->i_nlink); +truncate_inode_pages (&inode->i_data,0 ); -pr_debug ("AFFS: clear_inode(ino=%lu, nlink=%u)\n" , inode->i_ino, inode->i_nlink); +if (!inode->i_nlink) { + inode->i_size =0 ; +affs_truncate (inode); + } +invalidate_inode_buffers (inode); +end_writeback (inode);affs_free_prealloc (inode); cache_page = (unsigned long )AFFS_I (inode)->i_lc;if (cache_page) {
@@ -280,6 +276,9 @@ affs_clear_inode(struct inode *inode)affs_brelse (AFFS_I (inode)->i_ext_bh);AFFS_I (inode)->i_ext_last = ~1 ;AFFS_I (inode)->i_ext_bh =NULL ; + +if (!inode->i_nlink) +affs_free_block (inode->i_sb, inode->i_ino); } struct inode *
fs/affs/super.c +1 -2
@@ -140,8 +140,7 @@ static const struct super_operations affs_sops = { .alloc_inode = affs_alloc_inode, .destroy_inode = affs_destroy_inode, .write_inode = affs_write_inode, - .delete_inode = affs_delete_inode, - .clear_inode = affs_clear_inode, + .evict_inode = affs_evict_inode, .put_super = affs_put_super, .write_super = affs_write_super, .sync_fs = affs_sync_fs,
Signature · 1 line
1.5.6.5