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 00000000..e4fc48ea --- /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 00000000..fcb2cb81 --- /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 zc-rmOdr(tX9tUuI)W`UsTc^G;b+=o$?EvoDKuZm*#e$Va36KB@Ay_~pS4b^h9?=k6 zT3u}gySm_}4Tx08>*gx)g1sRDir`vBQ0~Kq26U;h-YX)d7x0phZKwOk&TMCQXZD|+ z^?v?1bLRZ@J7>=Mo*(bSdGqq$U%YeXtlYdEIoSdC`=2UQrImTyRcqZ)3ydyJ@yf^QKd0QR+Z#!QjWhz0< z_6x0pI{#rukM7UD?nlnAXbUoTRz?fo)U|L<&R%WX?y~kJLt(zJPVPC{f1&SoVm^QQ zM!%P>C})T2gQh3Fp@YhcSwq#9UU&SWiQ>a`;@`awsDgKsBtxqn|<_w zh_j2?Pug|rht1L99@VAqvUgpGA(z$(&s3c*Q4Z)--v|W#OSGTD0sq>1XUTNb)w5Ca zz4p~!@8(d5nK4P0?5G}jd-88Mi#}Jr$Q09z3{o_;Qw@x^(@$-o=?k{hC^+>%qCcrCL|v z)We6plFUmhUoKv8^8Sd&Kh&Ys`P+)$I=?nxjJMuD<7b96W2DIzeAX`gnX8N z@74#v>^Wu6E5Fp4>aDp-mo9((J5X=N`snVI4fs`lT({JQ-{;46rxq-Vv2Iwo&=dCk zLqEmdsS@}?a{}rV#V;$X>tEvF3D4$jg&i8dIda3OfU)%F}C%J;YsV418UlnvCP1P%cv# zLJ1JmXpH%WP%@b^gPHE6aFV1dS+%ClnL21vkwugp1l*ElG6>Akz)nRG9!Nbv8%k56 zO#A3d%yATc0MDfw7@PWRX?m;S5Otf)79_NqV(D`%=&LW4Rgg;=ni@AvW{(2osJIS^N^AD3M6wgTlldHH0{jbPORyBSb}C2J!eCJx0RToRT4~G%K9@Qr zhNo!|Nr2MK7!Ba+XvaB;83&F^Z39UF?qWRBhJgeX1Og6eYnY)K?*}?uhA^v8+2^th zh(;_$xSbXtC64AMLoi@=p-sj-!0vJu8iIg^m9kgK5Cj;O*vU0W&aikN8HuQdlc&fT z;Hejj0v=}vw6|`F%G%dPm$lb+bj|DvKlGA65bB^Fsue+^SV9Eub+ncnGwE4iT99HL zb{I_1r!`Xhub!B1!xsk8xP97s?A{ma;>8Y^k1LbY$ zXG@`E@-3v;QD15JHH{!i!SX9uBa#-Zco93opi-m6DyA4j>8Kq@G2;{x1Es1=h;mq6 z041u7%>;_1LyA>cKQ)Z($V*y9K8NJyNk$Asgq?CT)vlHSnGCB$#Cd-YX~nBpIg)r3 z(gRg4r0{3|I8)gni}ta;+HD^OMZC0p^?#Dmpjt1=AyS#z2>Uf-0o}sBt@-R4yny-w zHAG5z<_dBh^;h z4`vuPMq_h|2dyJm5lx^_KKv?mjZN3IJ}~hxH@Mw*wlryisG!$@3b!H<+fL^&8NQZM zQ6S#ITv2~kDy|?h8JZRPn%2PUs3ImyAZ~@Dus-HZfvg7~<1ZI1|HxFk(t4f0Ntm(( zzsP?>C_RpU!+%|vnuue3p-|R`f6xEtmJUCuvwMssfK%7H)bIrTH1nle9GtX({3Wu> zfi5+7(tKoda4HO)QQni*S3-A`kEFE{3yE(<-hmQeSWGWsx}=Z<<}16^iI5l|KLPaW zI0r&NjMC>iH6T&Ji-0=Ug)pNKu&HAmwgK^obprD+1Fq9e7D!3E>YJcp<&>+o(4zmL zb565kRzxhbUJ-dW9i_$cZl?f&V&01k)4 z;cz${4u`|xa5x+ehr{7;IGo3gA78Wj*pHKWtRLmo&g4#n^Y64p*FSw!9T0FJ;BR)d B{GR{- literal 0 Hc-jL100001 diff --git a/tests/f_quota_shrinkdir/name b/tests/f_quota_shrinkdir/name new file mode 100644 index 00000000..8772ae5c --- /dev/null +++ b/tests/f_quota_shrinkdir/name @@ -0,0 +1 @@ +update quota on directory optimization -- 2.47.2