On 09/12/13 16:00, Eric Sandeen wrote:
The test as it stands allows level == XFS_DA_NODE_MAXDEPTH (5), but a max depth of 5 equates to level values of 0 through 4. Level 5 would be a depth of 6. Signed-off-by: Eric Sandeen<sandeen@xxxxxxxxxx> ---
diff --git a/db/check.c b/db/check.c index cbe55ba..d9e3e3f 100644 --- a/db/check.c +++ b/db/check.c @@ -3138,7 +3138,7 @@ process_leaf_node_dir_v2_int( case XFS_DA_NODE_MAGIC: node = iocur_top->data; xfs_da3_node_hdr_from_disk(&nodehdr, node); - if (nodehdr.level< 1 || nodehdr.level> XFS_DA_NODE_MAXDEPTH) { + if (nodehdr.level< 1 || nodehdr.level>= XFS_DA_NODE_MAXDEPTH) { if (!sflag || v) dbprintf(_("bad node block level %d for dir ino " "%lld block %d\n"),
I think the current code is correct. 0 is a leaf. levels 1-XFS_DA_NODE_MAXDEPTH are nodes. Subtract 1 when used as an index. --Mark. _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs