From 0520a938e11c34a5ffc422b9316b85e294b0fbb2 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Sun, 11 Sep 2016 12:58:59 -0300 Subject: Linux-libre 4.7.3-gnu --- fs/aufs/dentry.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'fs/aufs/dentry.c') diff --git a/fs/aufs/dentry.c b/fs/aufs/dentry.c index 51af2cc72..5eb4f3620 100644 --- a/fs/aufs/dentry.c +++ b/fs/aufs/dentry.c @@ -36,7 +36,7 @@ au_do_lookup(struct dentry *h_parent, struct dentry *dentry, br = au_sbr(dentry->d_sb, bindex); wh_able = !!au_br_whable(br->br_perm); if (wh_able) - wh_found = au_wh_test(h_parent, wh_name, /*try_sio*/0); + wh_found = au_wh_test(h_parent, wh_name, ignore_perm); h_dentry = ERR_PTR(wh_found); if (!wh_found) goto real_lookup; @@ -701,7 +701,7 @@ void au_refresh_dop(struct dentry *dentry, int force_reval) int au_refresh_dentry(struct dentry *dentry, struct dentry *parent) { - int err, ebrange; + int err, ebrange, nbr; unsigned int sigen; struct au_dinfo *dinfo, *tmp; struct super_block *sb; @@ -717,8 +717,9 @@ int au_refresh_dentry(struct dentry *dentry, struct dentry *parent) if (unlikely(err)) goto out; + nbr = au_sbbot(sb) + 1; dinfo = au_di(dentry); - err = au_di_realloc(dinfo, au_sbbot(sb) + 1); + err = au_di_realloc(dinfo, nbr, /*may_shrink*/0); if (unlikely(err)) goto out; ebrange = au_dbrange_test(dentry); @@ -761,6 +762,7 @@ int au_refresh_dentry(struct dentry *dentry, struct dentry *parent) au_dbg_verify_dinode(dentry); AuTraceErr(err); } + au_di_realloc(dinfo, nbr, /*may_shrink*/1); /* harmless if err */ au_rw_write_unlock(&tmp->di_rwsem); au_di_free(tmp); if (unlikely(err)) -- cgit v1.2.3-54-g00ecf