]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
debian: update changelog and debian/patches with additional cherry-picked fixes
authorTheodore Ts'o <tytso@mit.edu>
Tue, 8 Aug 2023 20:08:52 +0000 (16:08 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 8 Aug 2023 20:08:52 +0000 (16:08 -0400)
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
debian/changelog
debian/patches/modify-dumpe2fs-to-report-free-block-range.patch [new file with mode: 0644]
debian/patches/series

index f550e96b399f7b3987b64e47fa7c48d5eec64908..32322d7d02f09035208d2f4215a0aac2bd029ce1 100644 (file)
@@ -5,8 +5,10 @@ e2fsprogs (1.47.0-3) unstable; urgency=medium
   * Suppress "Feature orphan_present is set but orphan file is
     clean" nessage when running in preen mode.
   * Fix e2fsck's handling of an invalid symlink in an inline directory
+  * Fix how dumpe2fs reports free ranges for bigalloc file systems
+  * Update debian/changelog with missing information
 
- -- Theodore Y. Ts'o <tytso@mit.edu>  Thu, 15 Jun 2023 00:46:33 -0400
+ -- Theodore Y. Ts'o <tytso@mit.edu>  Tue, 08 Aug 2023 16:08:06 -0400
 
 e2fsprogs (1.47.0-2) unstable; urgency=medium
 
diff --git a/debian/patches/modify-dumpe2fs-to-report-free-block-range.patch b/debian/patches/modify-dumpe2fs-to-report-free-block-range.patch
new file mode 100644 (file)
index 0000000..5f1b1bb
--- /dev/null
@@ -0,0 +1,63 @@
+From: Eric Whitney <enwlinux@gmail.com>
+Description: modify dumpe2fs to report free block ranges for bigalloc
+ .
+ dumpe2fs has never been modified to correctly report block ranges
+ corresponding to free clusters in block allocation bitmaps from bigalloc
+ file systems.  Rather than reporting block ranges covering all the
+ blocks in free clusters found in a block bitmap, it either reports just
+ the first block number in a cluster for a single free cluster, or a
+ range beginning with the first block number in the first cluster in a
+ series of free clusters, and ending with the first block number in the
+ last cluster in that series.
+ .
+ This behavior causes xfstest shared/298 to fail when run on a bigalloc
+ file system with a 1k block size.  The test uses dumpe2fs to collect
+ a list of the blocks freed when files are deleted from a file system.
+ When the test deletes a file containing blocks located after the first
+ block in the last cluster in a series of clusters, dumpe2fs does not
+ report those blocks as free per the test's expectations.
+ .
+ Modify dumpe2fs to report full block ranges for free clusters.  At the
+ same time, fix a small bug causing unnecessary !in_use() retests while
+ iterating over a block bitmap.
+Origin: upstream,https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?h=next&id=b31d5b582b4189a0ed27bced22276dd3f68c50a7
+---
+ misc/dumpe2fs.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/misc/dumpe2fs.c b/misc/dumpe2fs.c
+index 7c080ed9f..d2d57fb0a 100644
+--- a/misc/dumpe2fs.c
++++ b/misc/dumpe2fs.c
+@@ -84,8 +84,7 @@ static void print_free(unsigned long group, char * bitmap,
+                      unsigned long num, unsigned long offset, int ratio)
+ {
+       int p = 0;
+-      unsigned long i;
+-      unsigned long j;
++      unsigned long i, j;
+       offset /= ratio;
+       offset += group * num;
+@@ -95,13 +94,14 @@ static void print_free(unsigned long group, char * bitmap,
+                       if (p)
+                               printf (", ");
+                       print_number((i + offset) * ratio);
+-                      for (j = i; j < num && !in_use (bitmap, j); j++)
++                      for (j = i + 1; j < num && !in_use(bitmap, j); j++)
+                               ;
+-                      if (--j != i) {
++                      if (j != i + 1 || ratio > 1) {
+                               fputc('-', stdout);
+-                              print_number((j + offset) * ratio);
+-                              i = j;
++                              print_number(((j - 1 + offset) * ratio) +
++                                           ratio - 1);
+                       }
++                      i = j;
+                       p = 1;
+               }
+ }
+-- 
+2.31.0
+
index 7bad3516c35a9a7138cd0df32813470001c8f8b2..f9f11732319c3a8f2ebd5db743d861e68c48f2c0 100644 (file)
@@ -1,2 +1,3 @@
 suppress-orphan-file-is-clean-message-in-preen-mode.patch
 e2fsck-fix-handling-of-a-invalid-symlink-in-an-inline-dir.patch
+modify-dumpe2fs-to-report-free-block-range.patch