convert nilfs2 to ->evict_inode()
[folded build fix from sfr] Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
4ec70c9b46
commit
6fd1e5c994
3 changed files with 26 additions and 24 deletions
|
@ -27,6 +27,7 @@
|
|||
#include <linux/writeback.h>
|
||||
#include <linux/uio.h>
|
||||
#include "nilfs.h"
|
||||
#include "btnode.h"
|
||||
#include "segment.h"
|
||||
#include "page.h"
|
||||
#include "mdt.h"
|
||||
|
@ -354,7 +355,6 @@ void nilfs_free_inode(struct inode *inode)
|
|||
struct super_block *sb = inode->i_sb;
|
||||
struct nilfs_sb_info *sbi = NILFS_SB(sb);
|
||||
|
||||
clear_inode(inode);
|
||||
/* XXX: check error code? Is there any thing I can do? */
|
||||
(void) nilfs_ifile_delete_inode(sbi->s_ifile, inode->i_ino);
|
||||
atomic_dec(&sbi->s_inodes_count);
|
||||
|
@ -614,16 +614,34 @@ void nilfs_truncate(struct inode *inode)
|
|||
But truncate has no return value. */
|
||||
}
|
||||
|
||||
void nilfs_delete_inode(struct inode *inode)
|
||||
static void nilfs_clear_inode(struct inode *inode)
|
||||
{
|
||||
struct nilfs_inode_info *ii = NILFS_I(inode);
|
||||
|
||||
/*
|
||||
* Free resources allocated in nilfs_read_inode(), here.
|
||||
*/
|
||||
BUG_ON(!list_empty(&ii->i_dirty));
|
||||
brelse(ii->i_bh);
|
||||
ii->i_bh = NULL;
|
||||
|
||||
if (test_bit(NILFS_I_BMAP, &ii->i_state))
|
||||
nilfs_bmap_clear(ii->i_bmap);
|
||||
|
||||
nilfs_btnode_cache_clear(&ii->i_btnode_cache);
|
||||
}
|
||||
|
||||
void nilfs_evict_inode(struct inode *inode)
|
||||
{
|
||||
struct nilfs_transaction_info ti;
|
||||
struct super_block *sb = inode->i_sb;
|
||||
struct nilfs_inode_info *ii = NILFS_I(inode);
|
||||
|
||||
if (unlikely(is_bad_inode(inode))) {
|
||||
if (inode->i_nlink || unlikely(is_bad_inode(inode))) {
|
||||
if (inode->i_data.nrpages)
|
||||
truncate_inode_pages(&inode->i_data, 0);
|
||||
clear_inode(inode);
|
||||
end_writeback(inode);
|
||||
nilfs_clear_inode(inode);
|
||||
return;
|
||||
}
|
||||
nilfs_transaction_begin(sb, &ti, 0); /* never fails */
|
||||
|
@ -633,6 +651,8 @@ void nilfs_delete_inode(struct inode *inode)
|
|||
|
||||
nilfs_truncate_bmap(ii, 0);
|
||||
nilfs_mark_inode_dirty(inode);
|
||||
end_writeback(inode);
|
||||
nilfs_clear_inode(inode);
|
||||
nilfs_free_inode(inode);
|
||||
/* nilfs_free_inode() marks inode buffer dirty */
|
||||
if (IS_SYNC(inode))
|
||||
|
|
|
@ -245,7 +245,7 @@ extern void nilfs_write_inode_common(struct inode *, struct nilfs_inode *, int);
|
|||
extern struct inode *nilfs_iget(struct super_block *, unsigned long);
|
||||
extern void nilfs_update_inode(struct inode *, struct buffer_head *);
|
||||
extern void nilfs_truncate(struct inode *);
|
||||
extern void nilfs_delete_inode(struct inode *);
|
||||
extern void nilfs_evict_inode(struct inode *);
|
||||
extern int nilfs_setattr(struct dentry *, struct iattr *);
|
||||
extern int nilfs_load_inode_block(struct nilfs_sb_info *, struct inode *,
|
||||
struct buffer_head **);
|
||||
|
|
|
@ -159,23 +159,6 @@ void nilfs_destroy_inode(struct inode *inode)
|
|||
kmem_cache_free(nilfs_inode_cachep, NILFS_I(inode));
|
||||
}
|
||||
|
||||
static void nilfs_clear_inode(struct inode *inode)
|
||||
{
|
||||
struct nilfs_inode_info *ii = NILFS_I(inode);
|
||||
|
||||
/*
|
||||
* Free resources allocated in nilfs_read_inode(), here.
|
||||
*/
|
||||
BUG_ON(!list_empty(&ii->i_dirty));
|
||||
brelse(ii->i_bh);
|
||||
ii->i_bh = NULL;
|
||||
|
||||
if (test_bit(NILFS_I_BMAP, &ii->i_state))
|
||||
nilfs_bmap_clear(ii->i_bmap);
|
||||
|
||||
nilfs_btnode_cache_clear(&ii->i_btnode_cache);
|
||||
}
|
||||
|
||||
static int nilfs_sync_super(struct nilfs_sb_info *sbi, int dupsb)
|
||||
{
|
||||
struct the_nilfs *nilfs = sbi->s_nilfs;
|
||||
|
@ -467,7 +450,7 @@ static const struct super_operations nilfs_sops = {
|
|||
/* .write_inode = nilfs_write_inode, */
|
||||
/* .put_inode = nilfs_put_inode, */
|
||||
/* .drop_inode = nilfs_drop_inode, */
|
||||
.delete_inode = nilfs_delete_inode,
|
||||
.evict_inode = nilfs_evict_inode,
|
||||
.put_super = nilfs_put_super,
|
||||
/* .write_super = nilfs_write_super, */
|
||||
.sync_fs = nilfs_sync_fs,
|
||||
|
@ -475,7 +458,6 @@ static const struct super_operations nilfs_sops = {
|
|||
/* .unlockfs */
|
||||
.statfs = nilfs_statfs,
|
||||
.remount_fs = nilfs_remount,
|
||||
.clear_inode = nilfs_clear_inode,
|
||||
/* .umount_begin */
|
||||
.show_options = nilfs_show_options
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue