From 933bb7f7af88fe810bfd3a931d1a87e92826c174 Mon Sep 17 00:00:00 2001 From: Etienne AUJAMES Date: Mon, 3 May 2021 20:19:12 +0200 Subject: [PATCH] LU-14664 debugfs: print FLR values for trusted.fid Add "layout_version" and "range" values when printing a trusted.fid xattr. Homogenizes the debugfs output with "ll_decode_filter". Signed-off-by: Etienne AUJAMES Change-Id: I1a5b4790762afc389528dc525e169ac6c75eb8bf Reviewed-on: https://review.whamcloud.com/43519 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Li Dongyang Reviewed-by: Andreas Dilger --- debugfs/xattrs.c | 13 +++++++++++-- lib/ext2fs/lfsck.h | 13 ++++++++++++- tests/d_trusted_fid/expect | 4 ++++ tests/d_trusted_fid/image.gz | Bin 0 -> 8361 bytes tests/d_trusted_fid/name | 1 + tests/d_trusted_fid/script | 27 +++++++++++++++++++++++++++ 6 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 tests/d_trusted_fid/expect create mode 100644 tests/d_trusted_fid/image.gz create mode 100644 tests/d_trusted_fid/name create mode 100644 tests/d_trusted_fid/script diff --git a/debugfs/xattrs.c b/debugfs/xattrs.c index 3ad368e..4ebf6a0 100644 --- a/debugfs/xattrs.c +++ b/debugfs/xattrs.c @@ -180,8 +180,8 @@ static int print_fidstr(FILE *f, void *name, void *value, size_t value_len) ext2fs_le64_to_cpu(ff->ff_seq)); fprintf(f, "parent="DFID" stripe=%u", PFID(&ff->ff_parent), stripe); - if (value_len > sizeof(*ff)) { - struct filter_fid *ff_new = value; + if (value_len >= sizeof(struct filter_fid_210)) { + struct filter_fid_210 *ff_new = value; fprintf(f, " stripe_size=%u stripe_count=%u", ext2fs_le32_to_cpu(ff_new->ff_stripe_size), @@ -193,6 +193,15 @@ static int print_fidstr(FILE *f, void *name, void *value, size_t value_len) ext2fs_le64_to_cpu(ff_new->ff_pfl_start), ext2fs_le64_to_cpu(ff_new->ff_pfl_end)); } + + if (value_len >= sizeof(struct filter_fid)) { + struct filter_fid *ff_new = value; + + fprintf(f, " layout_version=%u range=%u", + ext2fs_le32_to_cpu(ff_new->ff_layout_version), + ext2fs_le32_to_cpu(ff_new->ff_range)); + } + fprintf(f, "\n"); return 0; diff --git a/lib/ext2fs/lfsck.h b/lib/ext2fs/lfsck.h index e112a5d..5f182bc 100644 --- a/lib/ext2fs/lfsck.h +++ b/lib/ext2fs/lfsck.h @@ -71,7 +71,7 @@ struct filter_fid_old { __u64 ff_seq; }; -struct filter_fid { +struct filter_fid_210 { struct lu_fid ff_parent; __u32 ff_stripe_size; __u32 ff_stripe_count; @@ -80,6 +80,17 @@ struct filter_fid { __u32 ff_pfl_id; }; +struct filter_fid { + struct lu_fid ff_parent; + __u32 ff_stripe_size; + __u32 ff_stripe_count; + __u64 ff_pfl_start; + __u64 ff_pfl_end; + __u32 ff_pfl_id; + __u32 ff_layout_version; + __u32 ff_range; +} __attribute__((packed)); + #define LMA_OLD_SIZE 64 #endif /* !LMA_OLD_SIZE */ diff --git a/tests/d_trusted_fid/expect b/tests/d_trusted_fid/expect new file mode 100644 index 0000000..e601771 --- /dev/null +++ b/tests/d_trusted_fid/expect @@ -0,0 +1,4 @@ +Extended attributes: + fid: parent=[0x200000402:0xc:0x0] stripe=1 stripe_size=1048576 stripe_count=2 layout_version=0 range=0 +Extended attributes: + fid: parent=[0x200000402:0x8:0x0] stripe=1 stripe_size=1048576 stripe_count=2 component_id=65537 component_start=0 component_end=18446744073709551615 layout_version=6 range=0 diff --git a/tests/d_trusted_fid/image.gz b/tests/d_trusted_fid/image.gz new file mode 100644 index 0000000000000000000000000000000000000000..9447f6fcd363d128c35eeb5b4a64fe04f3b85b3e GIT binary patch literal 8361 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 $TMPFILE + +$DEBUGFS -w -R "ea_list /plain" $TMPFILE >> $OUT.new 2>&1 +$DEBUGFS -w -R "ea_list /pfl_flr" $TMPFILE >> $OUT.new 2>&1 +sed -f $cmd_dir/filter.sed $OUT.new > $OUT +rm -f $TMPFILE $OUT.new + +cmp -s $OUT $EXP +status=$? + +if [ "$status" = 0 ] ; then + echo "$test_name: $test_description: ok" + touch $test_name.ok +else + echo "$test_name: $test_description: failed" + diff $DIFF_OPTS $EXP $OUT > $test_name.failed +fi + +unset IMAGE EXP OUT -- 1.8.3.1