convert reiserfs to ->evict_inode()
PATCH 46/58 convert reiserfs to ->evict_inode()
Signed-off-by Al Viro <[email protected]>
--- fs/reiserfs/inode.c | 13 ++++++++++--- fs/reiserfs/super.c | 8 +------- include/linux/reiserfs_fs.h | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-)
fs/reiserfs/inode.c +10 -3
@@ -25,7 +25,7 @@ int reiserfs_commit_write(struct file *f, struct page *page,int reiserfs_prepare_write (struct file *f,struct page *page,unsigned from,unsigned to); -void reiserfs_delete_inode (struct inode *inode) +void reiserfs_evict_inode (struct inode *inode) {/* We need blocks for transaction + (user+group) quota update (possibly delete) */ int jbegin_count =
@@ -35,10 +35,12 @@ void reiserfs_delete_inode(struct inode *inode)int depth;int err; -if (!is_bad_inode (inode)) +if (!inode->i_nlink && !is_bad_inode (inode))dquot_initialize (inode);truncate_inode_pages (&inode->i_data,0 ); +if (inode->i_nlink) + goto no_delete; depth =reiserfs_write_lock_once (inode->i_sb);
@@ -77,9 +79,14 @@ void reiserfs_delete_inode(struct inode *inode) ; } out: -clear_inode (inode);/* note this must go after the journal_end to prevent deadlock */ +end_writeback (inode);/* note this must go after the journal_end to prevent deadlock */ +dquot_drop (inode); inode->i_blocks =0 ;reiserfs_write_unlock_once (inode->i_sb, depth); + +no_delete: +end_writeback (inode); +dquot_drop (inode); } static void _make_cpu_key(struct cpu_key *key, int version, __u32 dirid,
fs/reiserfs/super.c +1 -7
@@ -589,11 +589,6 @@ out:reiserfs_write_unlock_once (inode->i_sb, lock_depth); } -static void reiserfs_clear_inode (struct inode *inode) -{ -dquot_drop (inode); -} -#ifdef CONFIG_QUOTA static ssize_t reiserfs_quota_write (struct super_block *,int ,const char *,size_t ,loff_t );
@@ -606,8 +601,7 @@ static const struct super_operations reiserfs_sops = { .destroy_inode = reiserfs_destroy_inode, .write_inode = reiserfs_write_inode, .dirty_inode = reiserfs_dirty_inode, - .clear_inode = reiserfs_clear_inode, - .delete_inode = reiserfs_delete_inode, + .evict_inode = reiserfs_evict_inode, .put_super = reiserfs_put_super, .write_super = reiserfs_write_super, .sync_fs = reiserfs_sync_fs,
include/linux/reiserfs_fs.h +1 -1
@@ -2033,7 +2033,7 @@ void reiserfs_read_locked_inode(struct inode *inode, struct reiserfs_iget_args *args);int reiserfs_find_actor (struct inode *inode,void *p);int reiserfs_init_locked_inode (struct inode *inode,void *p); -void reiserfs_delete_inode (struct inode *inode); +void reiserfs_evict_inode (struct inode *inode);int reiserfs_write_inode (struct inode *inode,struct writeback_control *wbc);int reiserfs_get_block (struct inode *inode,sector_t block,struct buffer_head *bh_result,int create);
Signature · 1 line
1.5.6.5