mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
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,
|
||||
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,
|
||||
|
@ -591,11 +591,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);
|
||||
@ -608,8 +603,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,
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user