From d3f7315b3c6b939d948cdbb456829bbbde123b03 Mon Sep 17 00:00:00 2001 From: Qu Wenruo Date: Tue, 31 Dec 2019 15:12:20 +0800 Subject: [PATCH] btrfs-progs: tests: check: detect bad extent item generation The new image has a bad data extent item generation: item 0 key (13631488 EXTENT_ITEM 4096) itemoff 16230 itemsize 53 refs 1 gen 16384 flags DATA extent data backref root FS_TREE objectid 257 offset 0 count 1 Just like what older `btrfs check --init-extent-tree` could cause. Reviewed-by: Su Yue Signed-off-by: Qu Wenruo Signed-off-by: David Sterba --- .../bad_extent_item_gen.img.xz | Bin 0 -> 1916 bytes .../test.sh | 19 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 tests/fsck-tests/044-invalid-extent-item-generation/bad_extent_item_gen.img.xz create mode 100755 tests/fsck-tests/044-invalid-extent-item-generation/test.sh diff --git a/tests/fsck-tests/044-invalid-extent-item-generation/bad_extent_item_gen.img.xz b/tests/fsck-tests/044-invalid-extent-item-generation/bad_extent_item_gen.img.xz new file mode 100644 index 0000000000000000000000000000000000000000..c3e30313538558384352d4987acef69f56acea2d GIT binary patch literal 1916 zcmV-?2ZQ+iH+ooF000E$*0e?f03iV!0000G&sfah3;zc?T>wRyj;C3^v%$$4d1r37 zhA1?_LT>Wbx+L2{5ct*#2hYYGZ$^%K*7}6#@?zh(OKyt!ovg(ZXD3s(w#SpNSsRep zn;&Hxy|d8!Hi*o#PdRXN)B+ivWj$v1%hPZx8E=T< zIFi++(r$u*0A%YuW7aB1tv#h~la(SW&<75ZbX{2HpaX7<+lhn{3MIgh{Z)k&XH7!- z$i?+3e{kf1rujr8NoiytrfWvbj+^erx%LwZ6`4?RpV8Uj2%8PN6}TKB72stHk=erF zZfbD^3`i=rDXXQqVgn?n3)M_=zMVg460_al*1EQe6RehzF>**=@B3DZM^tdid(Av& zv|+=Xx*;MKXd`nuxO6M=Gu{c4coH69RgW26`P$AZ|-HLCS+e zeQ+IA0>~0ckk&~DR#h{#Lp@mbC@Ee29#5kC5@O{=_t7tZ>H1Nh>jBd8C9(CT$kAIA z7N+}Kp`|CSujkwTDP(M;#QF)=>_SC=^65fQf+GYi>GVs5(%FRmcL!ay1An28JAMk9 zjF005pXjxPsZF>PAgk_{*)^zrWuOGYCr%m;Z5Iij7$)S9V}N6eTIG4xL9&v%JbXRN z!Hso@wG^`ob`AffkCnd`Hq4{5KcX>fJ^e$rcHH8Vt&)x$9OPVOMxN(qb_|1}&%GF0 z^(YphZ4V5@1-TMwXWqaOpZfoJQo+W)#S=v;wkY}p>|u*6uX|37vL`vo58!U0>kdzd zF)xr?nN{c|Z|FhwP?&?Sb)cnhgGQRDRvhYE3f~?Lx#nb(g>g~ulpZ74ywFa*bMr<8 zw1dO*Si2v{xcVNYXD(I{O`qzgT_6mJl2>ZW!KqB~!ZD7pmsg=|9;s8j4A(pTixI+T z>-*2VM+)UY=qM+OKyI)*4IOp-GgTH{U~;T1(vr-uvOhlmhg%X%qdhaZ-z1*p%unU^ z+Gm-zwG_iMJ%jD{@MrryJ-7x-lk_fc*8o9CKOs@mOA+&`I;q7-`+HWC4D4Pyk0m#; zE&%t+T#KL|eD~39LL~%KEG=Q))Jo7|{|tF|A^CKck~~fr?d?bLZRt{bW}E#7$g6*u zlwJj~7_!f1LK~Qd`bwbgd+m0S#kFNhm*dMOi5|fFYW>4}hNhZiYMJBX1DW-+FC3>> zKuEv?mDdP`0a_@$pvSdrC4Kf-2q7IVCR?v9%A-APiGsO_+8)i`KufH1@WbrDXdUBrD>y(hTNdxMbV#PXijZ=v{s+Fm*c|Mz^W7OeAM?0 z<>ZpcI$ZZHCGbrG-abJ+$@cfUk$sElUJ zeJ4G+K-_tP^o;FLZ9?_g!!`ZZhx?*HSeSaM^YNfVQQ+IAB_k?aw=c6dB+mBIk|s)L%u*2@Rg^h zq*qPE$vg%N0_Ul)p)m9GEUa5QRUvQb)TX@L{cy;H@2HiFWhQIun8M=P>%M|FA94VF z6ZXciBSk=z^i# z*Ewxo65u1o;3PFe;aIh84y?2eNdGvz5{&Or82y7KJ4tIK-j)u&BUg&xc}}Q!MS#6r z<#h&3ZEYc6NV!?kl1N5BUZyp*yxWYL1hELeBKWO(j`a^#hX-2Kh%Q-39amd!CJ)4HXuyfdA_lS0b*zdo(aF?s0XE~EZ=Lw_I2Hbr*H|jWf z3jC6`6x+nW2DNkTh(HE!jp(YB12(98r24u9t`g4>DF;L3({!kWwIV@;?O0aVl$}e; zEdcyEP+0;aOD}}5hEIO$Och-)`a(0J$#4gX1AcuZzQTUEnjCiFSz4d=Km48y^Ea{U z?cPJ9qXiVtI@2tQ(-*G*00021-<@0)+Cvur0oD$H7ytl$(QZev#Ao{g000001X)_c C2dftV literal 0 HcmV?d00001 diff --git a/tests/fsck-tests/044-invalid-extent-item-generation/test.sh b/tests/fsck-tests/044-invalid-extent-item-generation/test.sh new file mode 100755 index 00000000..2b88a3c7 --- /dev/null +++ b/tests/fsck-tests/044-invalid-extent-item-generation/test.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# +# Due to a bug in --init-extent-tree option, we may create bad generation +# number for data extents. +# +# This test case will ensure btrfs check can at least detect such problem, +# just like kernel tree-checker. + +source "$TEST_TOP/common" + +check_prereq btrfs + +check_image() { + run_mustfail \ + "btrfs check failed to detect invalid extent item generation" \ + "$TOP/btrfs" check "$1" +} + +check_all_images