Re: [PATCH 2/2] btrfs-progs: fsck-test: add test case where one dir has two links
From: Qu Wenruo <hidden>
Date: 2021-07-19 10:25:41
On 2021/7/19 下午5:57, Anand Jain wrote:
On 18/07/2021 20:54, Qu Wenruo wrote:quoted
Make sure btrfs check can detect such problem. Right now we have no way to fix it yet. Signed-off-by: Qu Wenruo <redacted>Test case runs fine. Do you use any tool to create the crafted image?
As usual, just hard coded btrfs-corrupt-block to call btrfs_add_link() for a directory. Thus there isn't really a good tool to craft such image. Thanks, Qu
Reviewed-by: Anand Jain <redacted> Thanks, Anandquoted
--- .../049-dir-hard-link/default.img.xz | Bin 0 -> 1712 bytes tests/fsck-tests/049-dir-hard-link/test.sh | 19 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 tests/fsck-tests/049-dir-hard-link/default.img.xz create mode 100755 tests/fsck-tests/049-dir-hard-link/test.shdiff --git a/tests/fsck-tests/049-dir-hard-link/default.img.xzb/tests/fsck-tests/049-dir-hard-link/default.img.xz new file mode 100644 index 0000000000000000000000000000000000000000..fd9971acae78975f5263da022feea39e34b45139 GIT binary patch literal 1712 zcmV;h22c6@H+ooF000E$*0e?f03iV!0000G&sfah3;zaiT>wRyj;C3^v%$$4d1lq4 zhDvnFHzu^a0%EHA+fjUfU^d-f8FD79nuh5qo92GkFUET_5R5Y~d)afdfW4sb2eW+N z(-N9N;@zX$?eR^yQlFZnSsfYzwplHEI#}i{O3&^g-%*#*J}6=@&Mr933Z)S+DYvtb z5k;9l__I-yJ`AS&v0F{j8)>U_CUcN9uhMMZ>r0aFa$nT3PO%||kR#<>`b&X;^jZx! z?T$2In^=Ho4dSN<1OU-V{`iJKl4iT0qZ?qN2!NSUwLkY={)k)$fv5z~^N4kqFTY0A zY^ShS`wE?^@sQEzTB{J`c&Co>am(cbBo?iCTX8yDg2XD@%iu+8T>Rs=OS3N#=)3bd z$%Q$2o4Jw~)_B}yv$C$3d8z@>PGT?pn~}TQM)H=}8OiIM$T%7bnT!rm9e8Kj*IY>i zRi|m%s0@W^`QQLHd#kk%hsBhG;@X+L^icR9?z+_VJJC<foGA3E&6VL0{A;3%cJ==0 zQ+LXY%FpCSU)dp6X$Db0^2j&;AImxC;Iy5{kd&j-sreBlGe;CO#@LBXsWNs-s4G^5 zkMnbl8qo_y<Q)yll@uqpxB_Bx^j<x0L&1{_?eTSfuoc&?{=ND?bOY}m<67e4t51xj z>$Xiwp#%2bqwq<I)rOyv*`#zeM<Er2k_h=l{vxz1wjGBxV(;KGg9_2$*Kfm|7ZEAA z=#taOkp3nuN;q+AP%$EA-qgk2$~WCSuo1Go&dnEkC8r$ZFr)emrzMJYyvjZRQJZ89 zcWLi>gAl7R=b$=TKgrNtsjTs>%c()OaRth)4EnpQ5JVZ^(KTPzrUX{p9;-ybSWq%f z+h=IPq3LWP%?;tzwce-qMY!>K!A<EL7J&#QUT?J|X~kIJH7Y_FhS^-tciImm#D&ui zMz;h<iYbcZa};e;dL=Np=)rTzy50l2>5@FkSm-}C%Z0i|p;ur0NT-IX6}s8Rm!mfP zPXw<w=}9Bq{+=J`=fD_;I&jaRg6LR`djeb}vAS|IF)+k`T^~r|BTi*ybSenXmZ1Ix zlA4$_;+N(C3J7h=)1T;tjo|#zD%6%Y(CGjKm&49ls!JyP&^_~FO;k^HQ!|sIrEsM5 zmu;FGGjE9B-8~BN+PBwW;ax;BdCareelj76adsW5H3ZV!_O4_e4!dny=gWye6eznx z*02QRiZ5oikY7EFi&f=|OkHl4;@~lbD#W-Ff>?{gkFl<_oY!Dd@ggcd1EGiS(3Q(7 zs81W|!q{6Sla<jssW?Bhc2AS+ydwD%2;1kqUB^-#h>!9bbNKzzP+95lMs6qCdis3( zxIT1wv2PKhAZso_!f!HtAShXA6eHuXWK0`PVh5TX(wgYr!l9e|jW&M_)<e3^X<w4M zY_P_kf=8+|nGi>DRcZBVfPyNr$65P*t{sM-vjL`XqP~HHY0FV{L*~3B=dzP+MOU1@ zRYWfI#vm2^g>N$aie=a^L(xQu@pRjw4DXt%wU7m~@-}@QvcEN^UEJ@e6Xm8m=^ZRq z)cUF@zR;E|i)7w`)u*a&WXIzpygnt3`|17G^sPOyW0?V~!r7SasXdubQAKKtR^|uf z4;4WRHG()C2~#M*GC^l@k>w3^5M{@6>W%dgSU>Zqn+vNd*2f><3(CVuqAnX=(Zu(G zF(j4`;!MKu6~PVFgQz$=jt#O~3U4TtOFg;!(X?=T=jRzhT3yzSXD>1GA8~FpzJVnt zUmIYu;aQe?QMT(4UkP16u@m}5@AX6}DPA>a!#dt3qbX_CfS5)G-*MI@B#;(Ap1`{; z3VE<Z0{u?EC{{mUj$DSQ|Lv6DL`62yckCVEF6WgD4l%e+sw}4(qMD4Y=X-!VdYJo{ zKb+fu*f8Tk!0fZzzcR|8Tl0H%R#9A&@3h+`YzekzO#*X*=^j()i-pyn&%m-Ln_2H! z&+nI1M9}8)2($&79_I@LdA5md{Ue@-$tE1%0OeJZ{UaXg=~jG>C#T>wd^;QzL0K(} z6tjZD62IVa<@fK+TssaPJ~B{H`R=bR5r$9ZK8P2Nah9n(3W~$(5piy!QO^Al)?l4Q z`5~x}6Pex_Yr=?Q*&mMGj7l@I6&y+9_H<1QmoCJTx0Y6JJmE9n=>iO#ToI;6F9dI) z!d^0KXk;SSyDf^@yN)Q-8qxAM^Z)=ciSQA~y}h;o0gMfR7ytk~fZMIH#Ao{g00000 G1X)_MbXXt& literal 0 HcmV?d00001diff --git a/tests/fsck-tests/049-dir-hard-link/test.shb/tests/fsck-tests/049-dir-hard-link/test.sh new file mode 100755 index 000000000000..992ad638bd47--- /dev/null +++ b/tests/fsck-tests/049-dir-hard-link/test.sh@@ -0,0 +1,19 @@ +#!/bin/bash +# +# Verify that check can detect overlapped dir with 2 links +# +# There is a report that btrfs-check doesn't report dir with 2 links as +# error, and only get caught by tree-checker. +# +# Make sure btrfs check can at least detect such error + +source "$TEST_TOP/common" + +check_prereq btrfs + +check_image() { + run_mustfail "dir with 2 links not detected" \ + "$TOP/btrfs" check "$1" +} + +check_all_images