diff options
Diffstat (limited to 'fs/aufs/super.c')
-rw-r--r-- | fs/aufs/super.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/aufs/super.c b/fs/aufs/super.c index 18190aa5f..8bd2d9ca4 100644 --- a/fs/aufs/super.c +++ b/fs/aufs/super.c @@ -23,6 +23,7 @@ static struct inode *aufs_alloc_inode(struct super_block *sb __maybe_unused) if (c) { au_icntnr_init(c); c->vfs_inode.i_version = 1; /* sigen(sb); */ + c->iinfo.ii_hinode = NULL; return &c->vfs_inode; } return NULL; @@ -38,7 +39,7 @@ static void aufs_destroy_inode_cb(struct rcu_head *head) static void aufs_destroy_inode(struct inode *inode) { - if (!is_bad_inode(inode)) + if (!au_is_bad_inode(inode)) au_iinfo_fin(inode); call_rcu(&inode->i_rcu, aufs_destroy_inode_cb); } @@ -85,11 +86,12 @@ static int au_show_brs(struct seq_file *seq, struct super_block *sb) err = 0; bbot = au_sbbot(sb); - hdp = au_di(sb->s_root)->di_hdentry; - for (bindex = 0; !err && bindex <= bbot; bindex++) { + bindex = 0; + hdp = au_hdentry(au_di(sb->s_root), bindex); + for (; !err && bindex <= bbot; bindex++, hdp++) { br = au_sbr(sb, bindex); path.mnt = au_br_mnt(br); - path.dentry = hdp[bindex].hd_dentry; + path.dentry = hdp->hd_dentry; err = au_seq_path(seq, &path); if (!err) { au_optstr_br_perm(&perm, br->br_perm); @@ -164,7 +166,6 @@ static int au_show_xino(struct seq_file *seq, struct super_block *sb) struct qstr *name; struct file *f; struct dentry *d, *h_root; - struct au_hdentry *hdp; AuRwMustAnyLock(&sbinfo->si_rwsem); @@ -178,8 +179,7 @@ static int au_show_xino(struct seq_file *seq, struct super_block *sb) brid = au_xino_brid(sb); if (brid >= 0) { bindex = au_br_index(sb, brid); - hdp = au_di(sb->s_root)->di_hdentry; - h_root = hdp[0 + bindex].hd_dentry; + h_root = au_hdentry(au_di(sb->s_root), bindex)->hd_dentry; } d = f->f_path.dentry; name = &d->d_name; @@ -503,7 +503,7 @@ static unsigned long long au_iarray_cb(struct super_block *sb, void *a, head = arg; spin_lock(&sb->s_inode_list_lock); list_for_each_entry(inode, head, i_sb_list) { - if (!is_bad_inode(inode) + if (!au_is_bad_inode(inode) && au_ii(inode)->ii_btop >= 0) { spin_lock(&inode->i_lock); if (atomic_read(&inode->i_count)) { |