summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYingping Lu <yingping@sgi.com>2005-11-03 00:31:47 +0100
committerNathan Scott <nathans@sgi.com>2005-11-03 00:31:47 +0100
commitbf6f05aa0bb6f1fe9a9ce35287678c3916bddfef (patch)
tree0707dd164ab0172a922b52e10212334f4675235e
parent[XFS] Ensure fsync does not incorrectly return EIO for pages beyond EOF. (diff)
downloadlinux-bf6f05aa0bb6f1fe9a9ce35287678c3916bddfef.tar.xz
linux-bf6f05aa0bb6f1fe9a9ce35287678c3916bddfef.zip
[XFS] Fixed the inconsistency between attribute b-tree intermidiate node
and leaf blocks. The problem cam from xfsqa test 117. SGI-PV: 940655 SGI-Modid: xfs-linux:xfs-kern:201527a Signed-off-by: Yingping Lu <yingping@sgi.com> Signed-off-by: Nathan Scott <nathans@sgi.com>
-rw-r--r--fs/xfs/xfs_da_btree.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c
index 6098aff7bd5c..473671fa5c13 100644
--- a/fs/xfs/xfs_da_btree.c
+++ b/fs/xfs/xfs_da_btree.c
@@ -429,7 +429,8 @@ xfs_da_node_split(xfs_da_state_t *state, xfs_da_state_blk_t *oldblk,
/*
* With V2 the extra block is data or freespace.
*/
- useextra = state->extravalid && XFS_DIR_IS_V1(state->mp);
+ useextra = state->extravalid && (XFS_DIR_IS_V1(state->mp) ||
+ state->args->whichfork == XFS_ATTR_FORK);
newcount = 1 + useextra;
/*
* Do we have to split the node?