Commit 477829ef authored by Mandy Kirkconnell's avatar Mandy Kirkconnell Committed by Nathan Scott

[XFS] Fix nused counter. It's currently getting set to -1 rather than

getting decremented by 1.  Since nused never reaches 0, the "if
(!free->hdr.nused)" check in xfs_dir2_leafn_remove() fails every time and
xfs_dir2_shrink_inode() doesn't get called when it should.  This causes
extra blocks to be left on an empty directory and the directory in unable
to be converted back to inline extent mode.

SGI-PV: 951958
SGI-Modid: xfs-linux-melb:xfs-kern:211382a
Signed-off-by: default avatarMandy Kirkconnell <alkirkco@sgi.com>
Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
parent 421ad134
...@@ -972,7 +972,7 @@ xfs_dir2_leafn_remove( ...@@ -972,7 +972,7 @@ xfs_dir2_leafn_remove(
/* /*
* One less used entry in the free table. * One less used entry in the free table.
*/ */
free->hdr.nused = cpu_to_be32(-1); be32_add(&free->hdr.nused, -1);
xfs_dir2_free_log_header(tp, fbp); xfs_dir2_free_log_header(tp, fbp);
/* /*
* If this was the last entry in the table, we can * If this was the last entry in the table, we can
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment