convert reiserfs to ->evict_inode()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
bd55597520
commit
845a2cc050
|
@ -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)
|
||||||
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)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
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 @@ out:
|
||||||
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 = {
|
||||||
.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,
|
||||||
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);
|
||||||
|
|
Loading…
Reference in New Issue