From 7805308b7a111c3943d92eab412b048d059ce108 Mon Sep 17 00:00:00 2001 From: "Luis Henriques (SUSE)" Date: Fri, 5 Apr 2024 15:24:04 +0100 Subject: [PATCH] tests: new test to check quota after directory optimization This new test validates e2fsck by verifying that quota data is updated after a directory optimization is performed. This issue was initially found by fstest ext4/014, and this test was based on it. It includes a filesystem image where the lost+found directory is unlinked after a new link to it is created: # debugfs -w -R "ln lost+found foo" f_testnew/image # debugfs -w -R "unlink lost+found" f_testnew/image Signed-off-by: Luis Henriques (SUSE) Link: https://lore.kernel.org/r/20240405142405.12312-4-luis.henriques@linux.dev Signed-off-by: Theodore Ts'o --- tests/f_quota_shrinkdir/expect.1 | 18 ++++++++++++++++++ tests/f_quota_shrinkdir/expect.2 | 7 +++++++ tests/f_quota_shrinkdir/image.gz | Bin 0 -> 10761 bytes tests/f_quota_shrinkdir/name | 1 + 4 files changed, 26 insertions(+) create mode 100644 tests/f_quota_shrinkdir/expect.1 create mode 100644 tests/f_quota_shrinkdir/expect.2 create mode 100644 tests/f_quota_shrinkdir/image.gz create mode 100644 tests/f_quota_shrinkdir/name diff --git a/tests/f_quota_shrinkdir/expect.1 b/tests/f_quota_shrinkdir/expect.1 new file mode 100644 index 0000000..e4fc48e --- /dev/null +++ b/tests/f_quota_shrinkdir/expect.1 @@ -0,0 +1,18 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +/lost+found not found. Create? yes + +Pass 3A: Optimizing directories +Pass 4: Checking reference counts +Pass 5: Checking group summary information +[QUOTA WARNING] Usage inconsistent for ID 0:actual (3072, 3) != expected (13312, 2) +Update quota info for quota type 0? yes + +[QUOTA WARNING] Usage inconsistent for ID 0:actual (3072, 3) != expected (13312, 2) +Update quota info for quota type 1? yes + + +test_filesys: ***** FILE SYSTEM WAS MODIFIED ***** +test_filesys: 12/256 files (16.7% non-contiguous), 1145/8192 blocks +Exit status is 1 diff --git a/tests/f_quota_shrinkdir/expect.2 b/tests/f_quota_shrinkdir/expect.2 new file mode 100644 index 0000000..fcb2cb8 --- /dev/null +++ b/tests/f_quota_shrinkdir/expect.2 @@ -0,0 +1,7 @@ +Pass 1: Checking inodes, blocks, and sizes +Pass 2: Checking directory structure +Pass 3: Checking directory connectivity +Pass 4: Checking reference counts +Pass 5: Checking group summary information +test_filesys: 12/256 files (16.7% non-contiguous), 1145/8192 blocks +Exit status is 0 diff --git a/tests/f_quota_shrinkdir/image.gz b/tests/f_quota_shrinkdir/image.gz new file mode 100644 index 0000000000000000000000000000000000000000..1fee3ca9c9b4cb61974be54b063c8f9e1ba49da1 GIT binary patch literal 10761 zcmeI!Yg7|g9sqEB)W`8bx1RdO)ZK2~wg+(623l%hEf%aaN`M4N2*Cm(86mYeJfb01 zT3v00cI|?jHXu?VugNHJz)nbjBDhu&lzG_D5M3(P84)QRz#$>qp4|_gvpwDYxM!XF z;huZ${c``m|Gocvc^}N1m;c`4oik_U=IzMI4!GC<#3y;#wQZvXIU#QM+qr*va(3?Q z&GR>X5`XhOQp`5Gxx32L^V zZ}sT>M;tx6zxui#I=`kZ$lO^OEqqhg!Z|s6wQal0+LsK5`My4}=UD&wzFUd;{N)?{ zUbdo~9jp(Up7e%#lozrFt1Z3m_(c=NN9xK?6qV6L$-Oi4!*5I;$|KN8|4_z|`dZ}? zKQ(GAS{?2|8lYG1tN`@3j=V8XO?3KZ65)xvh7WOh;Wg6E)v! zU+wj74uzN*lVr(`>XEl6Kan|lC(i{$Hf{~C^Isbc3_LVVfif@8=l#8Q!s`)C&*fe3 zzEak{&G*eRwy#=LcFC?+e?yNeKOBeuxzANTIBHry9bMr+P|o!JxMNcp{ZUo>=!WW= zfbtgqvQ+}MllBqq?GqjI3xG7xjmn*n#HX`0dKw z!``PN{4;);;g?sZzo^yiU$5MCZBNC;g@+C;9ln$$s4iW9w|8-7QNN}Z>bifnZ>iQ* zIQ8H`uO##0%9o2*oVYhKiliRZ=G8kFveT&pYb!@yH!VT?TKrf&EFwRT0%a{ zzkBn2VD_A{=apaSO!d}WrAwE;{vD_{V|{dY$_D%jKdxJ9!|(B9yHg7m#aK72TsRc= z!vjCX-mVh(LURJ@6vZzq(?T0Bh+?nU+d+C`;f?oJ?cU!J2FSfV>2n_m(@U>TnoF() zcLhlflT*~6A{xt0b+iwBGf2iW3{sO3wc9Mmsc$1rZ-e@%GX6X7wyywp>cu>hjs7g6 z`KmdPjHSHj$q>s2R2_4cE!Lch33+)kOJjMTtZb9~36`5qtTX?)VMFoBV?A1RJrN zzpqfU1*ar53swOg@z!YVWsRMw`rR5p?+!{t-Eg-!6#@dyU8t|zyj%5P~|&cnlOR;m_Pc?l}ZAM9(oxQFGy>( z#8S!3E`g-g>cLd>sQOfC@^&JTnPQ^_@*d2_qzM#dgipjz>foc#8Ri40bmyNlz5z7q zTIvnY1123>Z_EWyopYyQ1yHa1Vy7_`Xwo@`46gvzm5Bx9M!u>$d5oNiWH?Txr^2T9 zmA9myFNKoHw~%5-eWl^IG=d}r%P(V%NLsMsMeHbpN{te$m|_s6qjn(0j8jMql&Ufz z%3*Z@l&CT`6DX1nDOO?q)G)FmFKHF|9Fm(S88H+QcFN6EyIKZhGOQ92=l!clD_+IQ zk;G$=9;k95g+KeonaU1Zw2$9;ek9_y4}v0ITE6Q-Z$|uH@Mw*rZj1SsG!$@3b!H< z+fL^&8NQZMQ6S#ITvmTxDy|?h8JZRPn%2PUs3ImyAZ~@Dus-HZfvg7~<1ZI1|Ik#s z(t3@*Ntm((zrcS(C_RpU%YR*%nuue3p-|R`|G@wEFCBhDXCE?_08U-&Qo|GU)67?D zad6TC^4G{N2fEbUN%N7-!KpBGT6tGmUkTk-K9trVKKdk>5@Vcn6KHDziIwZ56qBE#Ew=-F@M`!Es?m@y+bK z8&9?s1LxKr7_BVWpMhy@+V5(HQ?B1=kHbIuagsP_oAmO!k|X_xN2_}LJG{47^Bz2m z`cS)nI`FYW1UPJk2O1ULasfD_;ZH~~(86W|0m0Zzb= iuUY-kPYm-|Kgz3}$%$|R|4E=Ny8h{7>VSX)0sjDYwfvs| literal 0 HcmV?d00001 diff --git a/tests/f_quota_shrinkdir/name b/tests/f_quota_shrinkdir/name new file mode 100644 index 0000000..8772ae5 --- /dev/null +++ b/tests/f_quota_shrinkdir/name @@ -0,0 +1 @@ +update quota on directory optimization -- 1.8.3.1