Do a cleanup. Also make it consistent with kernel.
Use fs_info instead of root for BTRFS_MAX_XATTR_SIZE, since
maybe in some situation we do not know root, but just know fs_info.
Signed-off-by: Gu Jinxiang <gujx@xxxxxxxxxxxxxx>
---
ctree.h | 2 +-
dir-item.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/ctree.h b/ctree.h
index ace93cc3..c82e7547 100644
--- a/ctree.h
+++ b/ctree.h
@@ -364,7 +364,7 @@ struct btrfs_header {
#define BTRFS_MAX_INLINE_DATA_SIZE(fs_info) (BTRFS_LEAF_DATA_SIZE(fs_info) - \
sizeof(struct btrfs_item) - \
sizeof(struct btrfs_file_extent_item))
-#define BTRFS_MAX_XATTR_SIZE(r) (BTRFS_LEAF_DATA_SIZE(r->fs_info) - \
+#define BTRFS_MAX_XATTR_SIZE(fs_info) (BTRFS_LEAF_DATA_SIZE(fs_info) - \
sizeof(struct btrfs_item) -\
sizeof(struct btrfs_dir_item))
diff --git a/dir-item.c b/dir-item.c
index 462546c0..0b7250c9 100644
--- a/dir-item.c
+++ b/dir-item.c
@@ -311,7 +311,8 @@ static int verify_dir_item(struct btrfs_root *root,
/* BTRFS_MAX_XATTR_SIZE is the same for all dir items */
if ((btrfs_dir_data_len(leaf, dir_item) +
- btrfs_dir_name_len(leaf, dir_item)) > BTRFS_MAX_XATTR_SIZE(root)) {
+ btrfs_dir_name_len(leaf, dir_item)) >
+ BTRFS_MAX_XATTR_SIZE(root->fs_info)) {
fprintf(stderr, "invalid dir item name + data len: %u + %u\n",
(unsigned)btrfs_dir_name_len(leaf, dir_item),
(unsigned)btrfs_dir_data_len(leaf, dir_item));
--
2.14.3
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html