switch sysv to ->evict_inode()
PATCH 16/58 switch sysv to ->evict_inode()
Signed-off-by Al Viro <[email protected]>
--- fs/sysv/ialloc.c | 1 - fs/sysv/inode.c | 15 ++++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-)
fs/sysv/ialloc.c +0 -1
@@ -112,7 +112,6 @@ void sysv_free_inode(struct inode * inode)return ; } raw_inode =sysv_raw_inode (sb, ino, &bh); -clear_inode (inode);if (!raw_inode) {printk ("sysv_free_inode: unable to read inode block on device " "%s\n" , inode->i_sb->s_id);
fs/sysv/inode.c +10 -5
@@ -308,12 +308,17 @@ int sysv_sync_inode(struct inode *inode)return __sysv_write_inode (inode,1 ); } -static void sysv_delete_inode (struct inode *inode) +static void sysv_evict_inode (struct inode *inode) {truncate_inode_pages (&inode->i_data,0 ); - inode->i_size =0 ; -sysv_truncate (inode); -sysv_free_inode (inode); +if (!inode->i_nlink) { + inode->i_size =0 ; +sysv_truncate (inode); + } +invalidate_inode_buffers (inode); +end_writeback (inode); +if (!inode->i_nlink) +sysv_free_inode (inode); }static struct kmem_cache *sysv_inode_cachep;
@@ -344,7 +349,7 @@ const struct super_operations sysv_sops = { .alloc_inode = sysv_alloc_inode, .destroy_inode = sysv_destroy_inode, .write_inode = sysv_write_inode, - .delete_inode = sysv_delete_inode, + .evict_inode = sysv_evict_inode, .put_super = sysv_put_super, .write_super = sysv_write_super, .sync_fs = sysv_sync_fs,
Signature · 1 line
1.5.6.5