Commit 845a2cc0 authored by Al Viro's avatar Al Viro

convert reiserfs to ->evict_inode()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent bd555975
...@@ -25,7 +25,7 @@ int reiserfs_commit_write(struct file *f, struct page *page, ...@@ -25,7 +25,7 @@ int reiserfs_commit_write(struct file *f, struct page *page,
int reiserfs_prepare_write(struct file *f, struct page *page, int reiserfs_prepare_write(struct file *f, struct page *page,
unsigned from, unsigned to); 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) */ /* We need blocks for transaction + (user+group) quota update (possibly delete) */
int jbegin_count = int jbegin_count =
...@@ -35,10 +35,12 @@ void reiserfs_delete_inode(struct inode *inode) ...@@ -35,10 +35,12 @@ void reiserfs_delete_inode(struct inode *inode)
int depth; int depth;
int err; int err;
if (!is_bad_inode(inode)) if (!inode->i_nlink && !is_bad_inode(inode))
dquot_initialize(inode); dquot_initialize(inode);
truncate_inode_pages(&inode->i_data, 0); truncate_inode_pages(&inode->i_data, 0);
if (inode->i_nlink)
goto no_delete;
depth = reiserfs_write_lock_once(inode->i_sb); depth = reiserfs_write_lock_once(inode->i_sb);
...@@ -77,9 +79,14 @@ void reiserfs_delete_inode(struct inode *inode) ...@@ -77,9 +79,14 @@ void reiserfs_delete_inode(struct inode *inode)
; ;
} }
out: 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; inode->i_blocks = 0;
reiserfs_write_unlock_once(inode->i_sb, depth); 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, static void _make_cpu_key(struct cpu_key *key, int version, __u32 dirid,
......
...@@ -591,11 +591,6 @@ static void reiserfs_dirty_inode(struct inode *inode) ...@@ -591,11 +591,6 @@ static void reiserfs_dirty_inode(struct inode *inode)
reiserfs_write_unlock_once(inode->i_sb, lock_depth); reiserfs_write_unlock_once(inode->i_sb, lock_depth);
} }
static void reiserfs_clear_inode(struct inode *inode)
{
dquot_drop(inode);
}
#ifdef CONFIG_QUOTA #ifdef CONFIG_QUOTA
static ssize_t reiserfs_quota_write(struct super_block *, int, const char *, static ssize_t reiserfs_quota_write(struct super_block *, int, const char *,
size_t, loff_t); size_t, loff_t);
...@@ -608,8 +603,7 @@ static const struct super_operations reiserfs_sops = { ...@@ -608,8 +603,7 @@ static const struct super_operations reiserfs_sops = {
.destroy_inode = reiserfs_destroy_inode, .destroy_inode = reiserfs_destroy_inode,
.write_inode = reiserfs_write_inode, .write_inode = reiserfs_write_inode,
.dirty_inode = reiserfs_dirty_inode, .dirty_inode = reiserfs_dirty_inode,
.clear_inode = reiserfs_clear_inode, .evict_inode = reiserfs_evict_inode,
.delete_inode = reiserfs_delete_inode,
.put_super = reiserfs_put_super, .put_super = reiserfs_put_super,
.write_super = reiserfs_write_super, .write_super = reiserfs_write_super,
.sync_fs = reiserfs_sync_fs, .sync_fs = reiserfs_sync_fs,
......
...@@ -2033,7 +2033,7 @@ void reiserfs_read_locked_inode(struct inode *inode, ...@@ -2033,7 +2033,7 @@ void reiserfs_read_locked_inode(struct inode *inode,
struct reiserfs_iget_args *args); struct reiserfs_iget_args *args);
int reiserfs_find_actor(struct inode *inode, void *p); int reiserfs_find_actor(struct inode *inode, void *p);
int reiserfs_init_locked_inode(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_write_inode(struct inode *inode, struct writeback_control *wbc);
int reiserfs_get_block(struct inode *inode, sector_t block, int reiserfs_get_block(struct inode *inode, sector_t block,
struct buffer_head *bh_result, int create); struct buffer_head *bh_result, int create);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment