switch sysv to ->evict_inode()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2010-06-05 19:16:20 -04:00
parent 1f895f75dc
commit d299eadc09
2 changed files with 10 additions and 6 deletions

View File

@ -113,7 +113,6 @@ void sysv_free_inode(struct inode * inode)
return; return;
} }
raw_inode = sysv_raw_inode(sb, ino, &bh); raw_inode = sysv_raw_inode(sb, ino, &bh);
clear_inode(inode);
if (!raw_inode) { if (!raw_inode) {
printk("sysv_free_inode: unable to read inode block on device " printk("sysv_free_inode: unable to read inode block on device "
"%s\n", inode->i_sb->s_id); "%s\n", inode->i_sb->s_id);

View File

@ -308,12 +308,17 @@ int sysv_sync_inode(struct inode *inode)
return __sysv_write_inode(inode, 1); 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); truncate_inode_pages(&inode->i_data, 0);
inode->i_size = 0; if (!inode->i_nlink) {
sysv_truncate(inode); inode->i_size = 0;
sysv_free_inode(inode); 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; static struct kmem_cache *sysv_inode_cachep;
@ -344,7 +349,7 @@ const struct super_operations sysv_sops = {
.alloc_inode = sysv_alloc_inode, .alloc_inode = sysv_alloc_inode,
.destroy_inode = sysv_destroy_inode, .destroy_inode = sysv_destroy_inode,
.write_inode = sysv_write_inode, .write_inode = sysv_write_inode,
.delete_inode = sysv_delete_inode, .evict_inode = sysv_evict_inode,
.put_super = sysv_put_super, .put_super = sysv_put_super,
.write_super = sysv_write_super, .write_super = sysv_write_super,
.sync_fs = sysv_sync_fs, .sync_fs = sysv_sync_fs,