summaryrefslogtreecommitdiff
path: root/fs/aufs/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/aufs/inode.c')
-rw-r--r--fs/aufs/inode.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/aufs/inode.c b/fs/aufs/inode.c
index a4b994e8c..8f7446df6 100644
--- a/fs/aufs/inode.c
+++ b/fs/aufs/inode.c
@@ -27,7 +27,7 @@ static void au_refresh_hinode_attr(struct inode *inode, int do_version)
static int au_ii_refresh(struct inode *inode, int *update)
{
- int err, e;
+ int err, e, nbr;
umode_t type;
aufs_bindex_t bindex, new_bindex;
struct super_block *sb;
@@ -39,9 +39,10 @@ static int au_ii_refresh(struct inode *inode, int *update)
*update = 0;
sb = inode->i_sb;
+ nbr = au_sbbot(sb) + 1;
type = inode->i_mode & S_IFMT;
iinfo = au_ii(inode);
- err = au_hinode_realloc(iinfo, au_sbbot(sb) + 1);
+ err = au_hinode_realloc(iinfo, nbr, /*may_shrink*/0);
if (unlikely(err))
goto out;
@@ -79,6 +80,7 @@ static int au_ii_refresh(struct inode *inode, int *update)
}
}
au_update_ibrange(inode, /*do_put_zero*/0);
+ au_hinode_realloc(iinfo, nbr, /*may_shrink*/1); /* harmless if err */
e = au_dy_irefresh(inode);
if (unlikely(e && !err))
err = e;