diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-09-11 12:58:59 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-09-11 12:58:59 -0300 |
commit | 0520a938e11c34a5ffc422b9316b85e294b0fbb2 (patch) | |
tree | 9e44592eccb90ed2d2b3a893fb602e4ca894f695 /fs/aufs/dentry.c | |
parent | 273d4428f8c4cc94c9598f8bcc006ec2e8c654ea (diff) |
Linux-libre 4.7.3-gnupck-4.7.3-gnu
Diffstat (limited to 'fs/aufs/dentry.c')
-rw-r--r-- | fs/aufs/dentry.c | 8 |
1 files changed, 5 insertions, 3 deletions
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)) |