Btrfs: fix an while-loop of listxattr
authorLiu Bo <bo.li.liu@oracle.com>
Mon, 26 Nov 2012 02:58:36 +0000 (02:58 +0000)
committerChris Mason <chris.mason@fusionio.com>
Mon, 17 Dec 2012 01:46:07 +0000 (20:46 -0500)
If we found an invalid xattr dir item, we'd better try the next one instead.

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/xattr.c

index 3f4e2d6..e9d3840 100644 (file)
@@ -265,7 +265,7 @@ ssize_t btrfs_listxattr(struct dentry *dentry, char *buffer, size_t size)
 
                di = btrfs_item_ptr(leaf, slot, struct btrfs_dir_item);
                if (verify_dir_item(root, leaf, di))
-                       continue;
+                       goto next;
 
                name_len = btrfs_dir_name_len(leaf, di);
                total_size += name_len + 1;