switch affs to ->evict_inode()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2010-06-06 10:16:41 -04:00
parent 69c9e75017
commit f053ddde75
3 changed files with 14 additions and 17 deletions

View File

@ -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 unsigned long affs_parent_ino(struct inode *dir);
extern struct inode *affs_new_inode(struct inode *dir); extern struct inode *affs_new_inode(struct inode *dir);
extern int affs_notify_change(struct dentry *dentry, struct iattr *attr); extern int affs_notify_change(struct dentry *dentry, struct iattr *attr);
extern void affs_delete_inode(struct inode *inode); extern void affs_evict_inode(struct inode *inode);
extern void affs_clear_inode(struct inode *inode);
extern struct inode *affs_iget(struct super_block *sb, extern struct inode *affs_iget(struct super_block *sb,
unsigned long ino); unsigned long ino);
extern int affs_write_inode(struct inode *inode, extern int affs_write_inode(struct inode *inode,

View File

@ -252,23 +252,19 @@ out:
} }
void void
affs_delete_inode(struct inode *inode) affs_evict_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)
{ {
unsigned long cache_page; 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); affs_free_prealloc(inode);
cache_page = (unsigned long)AFFS_I(inode)->i_lc; cache_page = (unsigned long)AFFS_I(inode)->i_lc;
if (cache_page) { if (cache_page) {
@ -280,6 +276,9 @@ affs_clear_inode(struct inode *inode)
affs_brelse(AFFS_I(inode)->i_ext_bh); affs_brelse(AFFS_I(inode)->i_ext_bh);
AFFS_I(inode)->i_ext_last = ~1; AFFS_I(inode)->i_ext_last = ~1;
AFFS_I(inode)->i_ext_bh = NULL; AFFS_I(inode)->i_ext_bh = NULL;
if (!inode->i_nlink)
affs_free_block(inode->i_sb, inode->i_ino);
} }
struct inode * struct inode *

View File

@ -140,8 +140,7 @@ static const struct super_operations affs_sops = {
.alloc_inode = affs_alloc_inode, .alloc_inode = affs_alloc_inode,
.destroy_inode = affs_destroy_inode, .destroy_inode = affs_destroy_inode,
.write_inode = affs_write_inode, .write_inode = affs_write_inode,
.delete_inode = affs_delete_inode, .evict_inode = affs_evict_inode,
.clear_inode = affs_clear_inode,
.put_super = affs_put_super, .put_super = affs_put_super,
.write_super = affs_write_super, .write_super = affs_write_super,
.sync_fs = affs_sync_fs, .sync_fs = affs_sync_fs,