forked from pool/xfsprogs
Compare commits
83 Commits
Author | SHA1 | Date | |
---|---|---|---|
705feb5657 | |||
|
aabca44123 | ||
e18ee593f2 | |||
|
f908818e4e | ||
aaf8dedb53 | |||
fe62889e23 | |||
|
683f87ea85 | ||
|
9086acb453 | ||
4539089456 | |||
|
4493bedc19 | ||
|
cf50660eea | ||
|
6e54e36300 | ||
|
43334d23f5 | ||
|
e782e271a7 | ||
|
01f447c2a7 | ||
|
1f038f9cde | ||
|
e99d655e4c | ||
|
d9878a9e8f | ||
|
12880e6bf6 | ||
|
85d024b269 | ||
|
2aed7a66fb | ||
|
bc2bb3b8f7 | ||
|
71e4345540 | ||
|
dd9e63dbe2 | ||
|
5d9e4f974c | ||
69404bdd1d | |||
486e93189f | |||
dfda309265 | |||
2fd1b4557f | |||
bb34c60feb | |||
754d060bfe | |||
731b864716 | |||
83ebd934ff | |||
f6a63b7415 | |||
b1e684a02a | |||
ae1ce8bc59 | |||
d89ba908e1 | |||
7a9ec87dd0 | |||
015b717910 | |||
|
4de7e02b09 | ||
6212c9f488 | |||
f86518e4d5 | |||
516d4b6371 | |||
d14a105b66 | |||
b7bf146258 | |||
72f1243d4d | |||
23459447de | |||
6427ba0c6d | |||
9b4c96bfa8 | |||
e6c67d69f5 | |||
d3fcaad6ed | |||
92ffad4eeb | |||
631307a55f | |||
36bc67d23e | |||
73f85e5df4 | |||
8a5dd6eaf0 | |||
627f9ccd4b | |||
1a8f02b2d8 | |||
a5a209c0ee | |||
9d23c76660 | |||
a08027c7ea | |||
30eaf4e6e1 | |||
9f28f13994 | |||
e4e8df0c7d | |||
41dd865d88 | |||
|
c9de12c1d0 | ||
|
c34e9f3b1d | ||
|
ae0db67d44 | ||
f7155207ab | |||
3deed83eb8 | |||
|
c45a14be29 | ||
|
84bcd5372b | ||
|
685844c63e | ||
|
82cf4f3139 | ||
|
84dd00b7f8 | ||
|
49296e72ab | ||
|
7d1b06f645 | ||
|
a00b8b10ba | ||
|
6958ba24a2 | ||
|
f7718644a2 | ||
|
7219f847e0 | ||
|
2286703d2f | ||
|
f3940e5740 |
@@ -1,280 +0,0 @@
|
||||
From e2239ef552a48edd33740fec8a005a7ac12dcc80 Mon Sep 17 00:00:00 2001
|
||||
From: Jeffrey Mahoney <jeffm@suse.com>
|
||||
Date: Tue, 21 Aug 2018 13:41:20 -0400
|
||||
Subject: [PATCH] repair: shift inode back into place if corrupted by bad log
|
||||
replay
|
||||
References: bsc#1105396
|
||||
|
||||
SUSE kernels 3.12.74-60.64.40 through 3.12.74-60.64.99 contained
|
||||
a regression where xfs_icdinode_t modified di_dmstate to be
|
||||
an atomic_t. Since we only complain if an inode item is too large,
|
||||
if a kernel with this patch applied mounted a file system with inode
|
||||
items in the log formatted by a kernel without this patch, they would
|
||||
be used but would be interpreted using the structure with the atomic_t.
|
||||
|
||||
As a result, the inode would be copied incorrectly, corrupting di_dmstate
|
||||
and the members that follow it.
|
||||
|
||||
For v3 inodes, we can detect that the UUID is shifted forward
|
||||
8 bytes and recover di_uuid, di_ino, di_crtime, di_pad2, di_cowextsize,
|
||||
di_flags2, and di_lsn. The UUID and inode number being incorrect
|
||||
will trip the verifier on iread, but it will have been flushed from the
|
||||
log in a broken state.
|
||||
|
||||
di_changecount is lost entirely since half is overwritten by the CRC
|
||||
being updated and the other half fell in a hole in the structure.
|
||||
di_flags is lost entirely since it is overwritten by the half of
|
||||
the generation number. Half of the generation number is lost since
|
||||
it falls in a hole in the structure.
|
||||
|
||||
For v2 inodes, the corruption is more limited but impossible to
|
||||
detect beyond invalid flags being in use.
|
||||
|
||||
Without this fix, xfs_repair will clear the affected inodes, causing
|
||||
big problems.
|
||||
|
||||
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
|
||||
---
|
||||
repair/dinode.c | 186 ++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 180 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/repair/dinode.c b/repair/dinode.c
|
||||
index 8ea919698d14..81238568ac8e 100644
|
||||
--- a/repair/dinode.c
|
||||
+++ b/repair/dinode.c
|
||||
@@ -2239,6 +2239,160 @@ _("Bad extent size hint %u on inode %" PRIu64 ", "),
|
||||
}
|
||||
}
|
||||
|
||||
+static int
|
||||
+check_shifted_uuid(struct xfs_dinode *dino, xfs_mount_t *mp)
|
||||
+{
|
||||
+ uint64_t tmp64;
|
||||
+ char tmpuuid[16];
|
||||
+ uuid_t uuid;
|
||||
+
|
||||
+ tmp64 = be64_to_cpu(dino->di_ino);
|
||||
+ memcpy(tmpuuid, &tmp64, sizeof(tmp64));
|
||||
+ memcpy(tmpuuid + 8, &dino->di_uuid, 8);
|
||||
+ memcpy(uuid, tmpuuid, 16);
|
||||
+
|
||||
+ return !platform_uuid_compare(&uuid, &mp->m_sb.sb_meta_uuid);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * There was a kernel that would use incorrectly-formatted log items.
|
||||
+ * If it recovered a dirty log, corrupted inodes would result.
|
||||
+ * 12 bytes of the inode are completely unrecoverable. Those are
|
||||
+ * documented below.
|
||||
+ */
|
||||
+static void
|
||||
+repair_inode_with_bad_atomic(struct xfs_dinode *dino, xfs_mount_t *mp)
|
||||
+{
|
||||
+ struct xfs_dinode fixed;
|
||||
+ struct xfs_legacy_timestamp *lts;
|
||||
+ uint64_t tmp64;
|
||||
+ uint32_t tmp32;
|
||||
+ char tmpuuid[16];
|
||||
+ char *tmpptr;
|
||||
+
|
||||
+ uuid_t uuid;
|
||||
+
|
||||
+ tmp64 = be64_to_cpu(dino->di_ino);
|
||||
+ memcpy(tmpuuid, &tmp64, sizeof(tmp64));
|
||||
+ tmpptr = (char *)dino->di_uuid;
|
||||
+ memcpy(tmpuuid + 8, tmpptr, 8);
|
||||
+ memcpy(uuid, tmpuuid, 16);
|
||||
+
|
||||
+ memcpy(&fixed, dino, sizeof(fixed));
|
||||
+ memcpy(&fixed.di_uuid, uuid, sizeof(uuid));
|
||||
+
|
||||
+ tmp32 = *(uint32_t *)&dino->di_pad2[4];
|
||||
+ lts = (struct xfs_legacy_timestamp *)&(fixed.di_crtime);
|
||||
+ lts->t_sec = cpu_to_be32(tmp32);
|
||||
+ tmp32 = *(uint32_t *)&dino->di_pad2[8];
|
||||
+ lts->t_nsec = cpu_to_be32(tmp32);
|
||||
+
|
||||
+ tmp64 = be32_to_cpu(((struct xfs_legacy_timestamp *)(&(dino->di_crtime)))->t_nsec);
|
||||
+ tmp64 <<= 32;
|
||||
+ tmp64 |= be32_to_cpu(((struct xfs_legacy_timestamp *)(&(dino->di_crtime)))->t_sec);
|
||||
+ fixed.di_ino = cpu_to_be64(tmp64);
|
||||
+
|
||||
+ tmp64 = be64_to_cpu(fixed.di_ino);
|
||||
+
|
||||
+ memcpy(fixed.di_pad2 + 8, dino->di_pad2, 4);
|
||||
+
|
||||
+ tmp32 = be32_to_cpu(dino->di_cowextsize);
|
||||
+ memcpy(fixed.di_pad2 + 4, &tmp32, 4);
|
||||
+
|
||||
+ tmp64 = be64_to_cpu(dino->di_flags2);
|
||||
+ tmp32 = tmp64 >> 32;
|
||||
+ memcpy(fixed.di_pad2, &tmp32, 4);
|
||||
+
|
||||
+ fixed.di_cowextsize = cpu_to_be32(tmp64);
|
||||
+ fixed.di_flags2 = dino->di_lsn;
|
||||
+ fixed.di_lsn = dino->di_changecount;
|
||||
+
|
||||
+ /*
|
||||
+ * This is lost entirely. Half falls in padding and half
|
||||
+ * is overwritten by the CRC.
|
||||
+ */
|
||||
+ fixed.di_changecount = 0;
|
||||
+
|
||||
+#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
+ /*
|
||||
+ * Half of the generation number is lost, but it's the high bits.
|
||||
+ * Pick a high number and hope for the best.
|
||||
+ */
|
||||
+ tmp32 = 0xff000000;
|
||||
+ tmp32 |= be16_to_cpu(dino->di_flags);
|
||||
+ fixed.di_gen = cpu_to_be32(tmp32);
|
||||
+#else
|
||||
+ /*
|
||||
+ * Half of the generation number is lost, but it's the low bits,
|
||||
+ * so we can fake it.
|
||||
+ */
|
||||
+ tmp32 = be16_to_cpu(dino->di_flags) + 1;
|
||||
+ tmp32 <<= 16;
|
||||
+ fixed.di_gen = cpu_to_be32(tmp32);
|
||||
+#endif
|
||||
+
|
||||
+ /*
|
||||
+ * The flags are lost since the atomic_t was 32-bit and we
|
||||
+ * only keep 16.
|
||||
+ */
|
||||
+ fixed.di_flags = 0;
|
||||
+
|
||||
+ memcpy(dino, &fixed, sizeof(*dino));
|
||||
+ xfs_dinode_calc_crc(mp, dino);
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+process_dinode_int(xfs_mount_t *mp, struct xfs_dinode *dino, xfs_agnumber_t agno,
|
||||
+ xfs_agino_t ino, int was_free, int *dirty, int *used,
|
||||
+ int verify_mode, int uncertain, int ino_discovery,
|
||||
+ int check_dups, int extra_attr_check, int *isa_dir,
|
||||
+ xfs_ino_t *parent, int recurse);
|
||||
+
|
||||
+static int
|
||||
+handle_malformed_inode(xfs_mount_t *mp, struct xfs_dinode *dino,
|
||||
+ xfs_agnumber_t agno, xfs_agino_t ino, int was_free,
|
||||
+ int *dirty, int *used, int verify_mode, int uncertain,
|
||||
+ int ino_discovery, int check_dups, int extra_attr_check,
|
||||
+ int *isa_dir, xfs_ino_t *parent)
|
||||
+{
|
||||
+ struct xfs_dinode save;
|
||||
+ int retval;
|
||||
+ xfs_ino_t lino = XFS_AGINO_TO_INO(mp, agno, ino);
|
||||
+
|
||||
+ if (!uncertain)
|
||||
+ do_warn(_("malformed inode %" PRIu64 " found%c"),
|
||||
+ lino, verify_mode ? '\n' : ',');
|
||||
+
|
||||
+ /*
|
||||
+ * We can't just pass a local copy to verify since we need the
|
||||
+ * data fork to check directories.
|
||||
+ */
|
||||
+ if (verify_mode || no_modify)
|
||||
+ memcpy(&save, dino, sizeof(*dino));
|
||||
+
|
||||
+ repair_inode_with_bad_atomic(dino, mp);
|
||||
+ retval = process_dinode_int(mp, dino, agno, ino, was_free, dirty,
|
||||
+ used, verify_mode, uncertain, ino_discovery,
|
||||
+ check_dups, extra_attr_check,
|
||||
+ isa_dir, parent, 1);
|
||||
+
|
||||
+ if (verify_mode || no_modify) {
|
||||
+ memcpy(dino, &save, sizeof(*dino));
|
||||
+ *dirty = 0;
|
||||
+ }
|
||||
+
|
||||
+ if (retval == 0 && !verify_mode) {
|
||||
+ if (no_modify)
|
||||
+ do_warn(_(" would repair\n"));
|
||||
+ else {
|
||||
+ do_warn(_(" repairing\n"));
|
||||
+ *dirty = 1;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return retval;
|
||||
+}
|
||||
+
|
||||
/*
|
||||
* returns 0 if the inode is ok, 1 if the inode is corrupt
|
||||
* check_dups can be set to 1 *only* when called by the
|
||||
@@ -2263,7 +2417,8 @@ process_dinode_int(xfs_mount_t *mp,
|
||||
* duplicate blocks */
|
||||
int extra_attr_check, /* 1 == do attribute format and value checks */
|
||||
int *isa_dir, /* out == 1 if inode is a directory */
|
||||
- xfs_ino_t *parent) /* out -- parent if ino is a dir */
|
||||
+ xfs_ino_t *parent, /* out -- parent if ino is a dir */
|
||||
+ int recurse)
|
||||
{
|
||||
xfs_rfsblock_t totblocks = 0;
|
||||
xfs_rfsblock_t atotblocks = 0;
|
||||
@@ -2379,6 +2534,25 @@ process_dinode_int(xfs_mount_t *mp,
|
||||
* memory and hence invalidated the CRC.
|
||||
*/
|
||||
if (xfs_has_crc(mp)) {
|
||||
+ int good_uuid = 1;
|
||||
+
|
||||
+ if (platform_uuid_compare(&dino->di_uuid,
|
||||
+ &mp->m_sb.sb_meta_uuid))
|
||||
+ good_uuid = 0;
|
||||
+
|
||||
+ /*
|
||||
+ * Only check to see if it's a malformed inode if it has
|
||||
+ * a valid magic, crc, and version and an invalid uuid.
|
||||
+ */
|
||||
+ if (!good_uuid && !retval && !recurse &&
|
||||
+ check_shifted_uuid(dino, mp))
|
||||
+ return handle_malformed_inode(mp, dino, agno, ino,
|
||||
+ was_free, dirty, used,
|
||||
+ verify_mode, uncertain,
|
||||
+ ino_discovery, check_dups,
|
||||
+ extra_attr_check,
|
||||
+ isa_dir, parent);
|
||||
+
|
||||
if (be64_to_cpu(dino->di_ino) != lino) {
|
||||
if (!uncertain)
|
||||
do_warn(
|
||||
@@ -2389,8 +2563,7 @@ _("inode identifier %llu mismatch on inode %" PRIu64 "\n"),
|
||||
return 1;
|
||||
goto clear_bad_out;
|
||||
}
|
||||
- if (platform_uuid_compare(&dino->di_uuid,
|
||||
- &mp->m_sb.sb_meta_uuid)) {
|
||||
+ if (!good_uuid) {
|
||||
if (!uncertain)
|
||||
do_warn(
|
||||
_("UUID mismatch on inode %" PRIu64 "\n"), lino);
|
||||
@@ -2952,7 +3125,8 @@ process_dinode(
|
||||
#endif
|
||||
return process_dinode_int(mp, dino, agno, ino, was_free, dirty, used,
|
||||
verify_mode, uncertain, ino_discovery,
|
||||
- check_dups, extra_attr_check, isa_dir, parent);
|
||||
+ check_dups, extra_attr_check, isa_dir, parent,
|
||||
+ 0);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2979,7 +3153,7 @@ verify_dinode(
|
||||
|
||||
return process_dinode_int(mp, dino, agno, ino, 0, &dirty, &used,
|
||||
verify_mode, uncertain, ino_discovery,
|
||||
- check_dups, 0, &isa_dir, &parent);
|
||||
+ check_dups, 0, &isa_dir, &parent, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3005,5 +3179,5 @@ verify_uncertain_dinode(
|
||||
|
||||
return process_dinode_int(mp, dino, agno, ino, 0, &dirty, &used,
|
||||
verify_mode, uncertain, ino_discovery,
|
||||
- check_dups, 0, &isa_dir, &parent);
|
||||
+ check_dups, 0, &isa_dir, &parent, 0);
|
||||
}
|
||||
--
|
||||
2.36.1
|
||||
|
7
xfsprogs-6.15.0.tar.sign
Normal file
7
xfsprogs-6.15.0.tar.sign
Normal file
@@ -0,0 +1,7 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iHUEABYKAB0WIQSuGyqVYnIab8QwfB9Gp+oYrDPhCAUCaFlBUAAKCRBGp+oYrDPh
|
||||
CLrPAQDiLTa+hRGuWHFtTwu4Mrs0M014Wz9XfFJeG+qbYSq86AD+O+lNJBAM8IaC
|
||||
mIL4PLuZ0LJ5M0mDlSmseGNV4SrQZAo=
|
||||
=fknC
|
||||
-----END PGP SIGNATURE-----
|
BIN
xfsprogs-6.15.0.tar.xz
(Stored with Git LFS)
Normal file
BIN
xfsprogs-6.15.0.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
@@ -1,7 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iIQEABYIAC0WIQT6QG4gav94c4l8aGS0VhjDaiT9IwUCZGs+kg8cY2VtQGtlcm5l
|
||||
bC5vcmcACgkQtFYYw2ok/SO6wgEAgMdBBcJsx/oEPKLXGZr+ueGZ81K7hGq8ueFF
|
||||
sXp69AEA+PiK4Bh/angpo2lhftgZhGaOHxmj8vIyH2jJSw53LgE=
|
||||
=+kzW
|
||||
-----END PGP SIGNATURE-----
|
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ec987c9f0bcb2db2991bffb80d353150b389c3a2b79b6830411f7042adf6990c
|
||||
size 1328452
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/include/builddefs.in b/include/builddefs.in
|
||||
index 0bb364310d78..07775ac2d5e7 100644
|
||||
--- a/include/builddefs.in
|
||||
+++ b/include/builddefs.in
|
||||
@@ -54,7 +54,7 @@ PKG_LIB_DIR = @libdir@@libdirsuffix@
|
||||
Index: xfsprogs-6.7.0/include/builddefs.in
|
||||
===================================================================
|
||||
--- xfsprogs-6.7.0.orig/include/builddefs.in
|
||||
+++ xfsprogs-6.7.0/include/builddefs.in
|
||||
@@ -55,7 +55,7 @@ PKG_LIBEXEC_DIR = @libexecdir@/@pkg_name
|
||||
PKG_INC_DIR = @includedir@/xfs
|
||||
DK_INC_DIR = @includedir@/disk
|
||||
PKG_MAN_DIR = @mandir@
|
||||
|
510
xfsprogs.changes
510
xfsprogs.changes
@@ -1,3 +1,512 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 25 09:37:08 UTC 2025 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.15.0
|
||||
- xfs_mdrestore: don't allow restoring onto zoned block devices
|
||||
- man: adjust description of the statx manpage
|
||||
- xfs_protofile: fix permission octet when suid/guid is set
|
||||
- xfs_repair: fix libxfs abstraction mess
|
||||
- xfs_growfs: support internal RT devices
|
||||
- xfs_mdrestore: support internal RT devices
|
||||
- xfs_scrub: support internal RT device
|
||||
- xfs_spaceman: handle internal RT devices
|
||||
- xfs_io: handle internal RT devices in fsmap output
|
||||
- xfs_io: don't re-query fs_path information in fsmap_f
|
||||
- xfs_io: correctly report RGs with internal rt dev in bmap output
|
||||
- man: document XFS_FSOP_GEOM_FLAGS_ZONED
|
||||
- xfs_mkfs: document the new zoned options in the man page
|
||||
- xfs_mkfs: reflink conflicts with zoned file systems for now
|
||||
- xfs_mkfs: default to rtinherit=1 for zoned file systems
|
||||
- xfs_mkfs: calculate zone overprovisioning when specifying size
|
||||
- xfs_mkfs: support creating file system with zoned RT devices
|
||||
- xfs_mkfs: factor out a validate_rtgroup_geometry helper
|
||||
- xfs_repair: validate rt groups vs reported hardware zones
|
||||
- xfs_repair: fix the RT device check in process_dinode_int
|
||||
- xfs_repair: support repairing zoned file systems
|
||||
- libfrog: report the zoned geometry
|
||||
- xfs_repair: phase6: scan longform entries before header check
|
||||
- xfs_repair: Bump link count if longform_dir2_rebuild yields shortform dir
|
||||
- mkfs: fix the issue of maxpct set to 0 not taking effect
|
||||
- mkfs: fix blkid probe API violations causing weird output
|
||||
- xfs_io: make statx mask parsing more generally useful
|
||||
- xfs_io: redefine what statx -m all does
|
||||
- xfs_io: catch statx fields up to 6.15
|
||||
- man: fix missing cachestat manpage
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 14 18:00:22 UTC 2025 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.14.0
|
||||
- xfs_scrub_all: localize the strings in the program
|
||||
- xfs_protofile: add messages to localization catalog
|
||||
- Makefile: inject package name/version/bugreport into pot file
|
||||
- xfs_scrub_all: rename source code to .py.in
|
||||
- xfs_protofile: rename source code to .py.in
|
||||
- xfs_repair: handling a block with bad crc, bad uuid, and bad magic number needs fixing
|
||||
- xfs_repair: fix stupid argument error in verify_inode_chunk
|
||||
- xfs_repair: fix infinite loop in longform_dir2_entry_check*
|
||||
- xfs_repair: fix crash in reset_rt_metadir_inodes
|
||||
- xfs_repair: don't recreate /quota metadir if there are no quota inodes
|
||||
- xfs_repair: fix wording of error message about leftover CoW blocks on the rt device
|
||||
- xfs_io: Add cachestat syscall support
|
||||
- xfs_io: Add RWF_DONTCACHE support to preadv2
|
||||
- xfs_io: Add RWF_DONTCACHE support to pwritev2
|
||||
- xfs_io: Add support for preadv2
|
||||
- make: remove the .extradep file in libxfs on "make clean"
|
||||
- xfs_{admin,repair},man5: tell the user to mount with nouuid for snapshots
|
||||
- xfsprogs: Fix mismatched return type of filesize()
|
||||
- xfs_io: don't fail FS_IOC_FSGETXATTR on filesystems that lack support
|
||||
- configure: additionally get icu-uc from pkg-config
|
||||
- xfs_scrub: use the display mountpoint for reporting file corruptions
|
||||
- xfs_scrub: don't warn about zero width joiner control characters
|
||||
- xfs_scrub: fix buffer overflow in string_escape
|
||||
- xfs_db: add command to copy directory trees out of filesystems
|
||||
- xfs_db: make listdir more generally useful
|
||||
- xfs_db: use an empty transaction to try to prevent livelocks in path_navigate
|
||||
- xfs_db: pass const pointers when we're not modifying them
|
||||
- mkfs: enable reflink on the realtime device
|
||||
- mkfs: validate CoW extent size hint when rtinherit is set
|
||||
- xfs_logprint: report realtime CUIs
|
||||
- xfs_repair: validate CoW extent size hint on rtinherit directories
|
||||
- xfs_repair: allow realtime files to have the reflink flag set
|
||||
- xfs_repair: rebuild the realtime refcount btree
|
||||
- xfs_repair: reject unwritten shared extents
|
||||
- xfs_repair: check existing realtime refcountbt entries against observed refcounts
|
||||
- xfs_repair: compute refcount data for the realtime groups
|
||||
- xfs_repair: find and mark the rtrefcountbt inode
|
||||
- xfs_repair: use realtime refcount btree data to check block types
|
||||
- xfs_repair: allow CoW staging extents in the realtime rmap records
|
||||
- xfs_spaceman: report health of the realtime refcount btree
|
||||
- xfs_db: add rtrefcount reservations to the rgresv command
|
||||
- xfs_db: copy the realtime refcount btree
|
||||
- xfs_db: support the realtime refcountbt
|
||||
- xfs_db: display the realtime refcount btree contents
|
||||
- man: document userspace API changes due to rt reflink
|
||||
- mkfs: create the realtime rmap inode
|
||||
- xfs_logprint: report realtime RUIs
|
||||
- xfs_repair: reserve per-AG space while rebuilding rt metadata
|
||||
- xfs_repair: rebuild the bmap btree for realtime files
|
||||
- xfs_repair: check for global free space concerns with default btree slack levels
|
||||
- xfs_repair: rebuild the realtime rmap btree
|
||||
- xfs_repair: always check realtime file mappings against incore info
|
||||
- xfs_repair: check existing realtime rmapbt entries against observed rmaps
|
||||
- xfs_repair: find and mark the rtrmapbt inodes
|
||||
- xfs_repair: refactor realtime inode check
|
||||
- xfs_repair: create a new set of incore rmap information for rt groups
|
||||
- xfs_repair: use realtime rmap btree data to check block types
|
||||
- xfs_repair: flag suspect long-format btree blocks
|
||||
- xfs_repair: tidy up rmap_diffkeys
|
||||
- xfs_spaceman: report health status of the realtime rmap btree
|
||||
- xfs_db: add an rgresv command
|
||||
- xfs_db: make fsmap query the realtime reverse mapping tree
|
||||
- xfs_db: copy the realtime rmap btree
|
||||
- xfs_db: support the realtime rmapbt
|
||||
- xfs_db: display the realtime rmap btree contents
|
||||
- xfs_db: don't abort when bmapping on a non-extents/bmbt fork
|
||||
- xfs_db: compute average btree height
|
||||
- man: document userspace API changes due to rt rmap
|
||||
- xfs_scrub: try harder to fill the bulkstat array with bulkstat()
|
||||
- xfs_scrub: ignore freed inodes when single-stepping during phase 3
|
||||
- xfs_scrub: hoist the phase3 bulkstat single stepping code
|
||||
- xfs_scrub: don't blow away new inodes in bulkstat_single_step
|
||||
- xfs_scrub: return early from bulkstat_for_inumbers if no bulkstat data
|
||||
- xfs_scrub: don't complain if bulkstat fails
|
||||
- xfs_scrub: don't
|
||||
- xfs_scrub: don't double-scan inodes during phase 3
|
||||
- xfs_scrub: actually iterate all the bulkstat records
|
||||
- xfs_scrub: selectively re-run bulkstat after re-running inumbers
|
||||
- xfs_scrub: remove flags argument from scrub_scan_all_inodes
|
||||
- xfs_scrub: call bulkstat directly if we're only scanning user files
|
||||
- xfs_scrub: don't report data loss in unlinked inodes twice
|
||||
- man: document new XFS_BULK_IREQ_METADIR flag to bulkstat
|
||||
- xfs_db: obfuscate rt superblock label when metadumping
|
||||
- mkfs,xfs_repair: don't pass a daddr as the flags argument
|
||||
|
||||
- drop mkfs-fix-filesize-function-compilation-error-on-32-b.patch
|
||||
The fix is now included in the v6.14.0 release.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Mar 1 10:03:41 UTC 2025 - Jan Engelhardt <jengelh@inai.de>
|
||||
|
||||
- Modernize specfile: remove implicit %defattr, trim -n arguments
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Feb 18 14:56:17 UTC 2025 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- mkfs: fix filesize function compilation error on 32-bit archs
|
||||
- add mkfs-fix-filesize-function-compilation-error-on-32-b.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 17 13:15:41 UTC 2025 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.13.0
|
||||
- xfs_protofile: fix device number encoding
|
||||
- xfs_protofile: fix mode formatting error
|
||||
- mkfs: fix file size setting when interpreting a protofile
|
||||
- xfs_repair: require zeroed quota/rt inodes in metadir superblocks
|
||||
- mkfs: use a default sector size that is also suitable for the rtdev
|
||||
- xfs_scrub_all.timer: don't run if /var/lib/xfsprogs is readonly
|
||||
- xfs_logprint: Fix super block buffer interpretation issue
|
||||
- mkfs: allow sizing realtime allocation groups for concurrency
|
||||
- build: initialize stack variables to zero by default
|
||||
- m4: fix statx override selection if /usr/include doesn't define it
|
||||
- mkfs: fix parsing of value-less -d/-l concurrency cli option
|
||||
- xfs_db: improve error message when unknown btree type given to btheight
|
||||
- xfs_repair: don't obliterate return codes
|
||||
- xfs_db: fix multiple dblock commands
|
||||
- xfs: don't return an error from xfs_update_last_rtgroup_size for !XFS_RT
|
||||
- xfs_io: add extsize command support
|
||||
- xfs_io: allow foreign FSes to show FS_IOC_FSGETXATTR details
|
||||
- mkfs: enable rt quota options
|
||||
- xfs_quota: report warning limits for realtime space quotas
|
||||
- mkfs: add quota flags when setting up filesystem
|
||||
- xfs_repair: try not to trash qflags on metadir filesystems
|
||||
- xfs_repair: support quota inodes in the metadata directory
|
||||
- xfs_db: support metadir quotas
|
||||
- libfrog: scrub quota file metapaths
|
||||
- mkfs: format realtime groups
|
||||
- mkfs: add headers to realtime bitmap blocks
|
||||
- xfs_scrub: use histograms to speed up phase 8 on the realtime volume
|
||||
- xfs_scrub: trim realtime volumes too
|
||||
- xfs_scrub: call GETFSMAP for each rt group in parallel
|
||||
- xfs_scrub: cleanup fsmap keys initialization
|
||||
- xfs_scrub: check rtgroup metadata directory connections
|
||||
- xfs_scrub: scrub realtime allocation group metadata
|
||||
- xfs_spaceman: report on realtime group health
|
||||
- xfs_mdrestore: restore rt group superblocks to realtime device
|
||||
- xfs_io: display rt group in verbose fsmap output
|
||||
- xfs_io: display rt group in verbose bmap output
|
||||
- xfs_io: add a command to display realtime group information
|
||||
- xfs_io: add a command to display allocation group information
|
||||
- xfs_io: support scrubbing rtgroup metadata paths
|
||||
- xfs_io: support scrubbing rtgroup metadata
|
||||
- xfs_db: report rt group and block number in the bmap command
|
||||
- xfs_db: dump rt summary blocks
|
||||
- xfs_db: dump rt bitmap blocks
|
||||
- xfs_db: metadump realtime devices
|
||||
- xfs_db: metadump metadir rt bitmap and summary files
|
||||
- xfs_db: enable conversion of rt space units
|
||||
- xfs_db: support changing the label and uuid of rt superblocks
|
||||
- xfs_db: support dumping realtime group data and superblocks
|
||||
- xfs_db: listify the definition of enum typnm
|
||||
- xfs_db: enable rtconvert to handle segmented rtblocks
|
||||
- xfs_db: enable the rtblock and rtextent commands for segmented rt block numbers
|
||||
- xfs_repair: repair rtbitmap and rtsummary block headers
|
||||
- xfs_repair: support realtime superblocks
|
||||
- xfs_repair: find and clobber rtgroup bitmap and summary files
|
||||
- xfs_repair: support realtime groups
|
||||
- xfs_repair: add a real per-AG bitmap abstraction
|
||||
- xfs_repair: simplify rt_lock handling
|
||||
- xfs_repair: improve rtbitmap discrepancy reporting
|
||||
- xfs_repair: refactor offsetof+sizeof to offsetofend
|
||||
- xfs_repair: refactor phase4
|
||||
- xfs_repair: adjust rtbitmap/rtsummary word updates to handle big endian values
|
||||
- xfs_logprint: report realtime EFIs
|
||||
- libfrog: add bitmap_clear
|
||||
- libfrog: report rt groups in output
|
||||
- libfrog: support scrubbing rtgroup metadata paths
|
||||
- man: document rgextents geom field
|
||||
- man: document the rt group geometry ioctl
|
||||
- mkfs: add a utility to generate protofiles
|
||||
- mkfs: support copying in xattrs
|
||||
- mkfs: support copying in large or sparse files
|
||||
- mkfs.xfs: enable metadata directories
|
||||
- xfs_repair: do not count metadata directory files when doing quotacheck
|
||||
- xfs_repair: truncate and unmark orphaned metadata inodes
|
||||
- xfs_repair: drop all the metadata directory files during pass 4
|
||||
- xfs_repair: metadata dirs are never plausible root dirs
|
||||
- xfs_repair: mark space used by metadata files
|
||||
- xfs_repair: update incore metadata state whenever we create new files
|
||||
- xfs_repair: don't let metadata and regular files mix
|
||||
- xfs_repair: rebuild the metadata directory
|
||||
- xfs_repair: check metadata inode flag
|
||||
- xfs_repair: dont check metadata directory dirent inumbers
|
||||
- xfs_repair: handle sb_metadirino correctly when zeroing supers
|
||||
- xfs_scrub: re-run metafile scrubbers during phase 5
|
||||
- xfs_scrub: scan metadata directories during phase 3
|
||||
- xfs_scrub: tread zero-length read verify as an IO error
|
||||
- xfs_spaceman: report health of metadir inodes too
|
||||
- xfs_io: support scrubbing metadata directory paths
|
||||
- xfs_io: support flag for limited bulkstat of the metadata directory
|
||||
- xfs_db: drop the metadata checking code from blockget
|
||||
- xfs_db: display di_metatype
|
||||
- xfs_db: show the metadata root directory when dumping superblocks
|
||||
- xfs_db: support metadata directories in the path command
|
||||
- xfs_db: don't obfuscate metadata directories and attributes
|
||||
- xfs_db: report metadir support for version command
|
||||
- xfs_db: disable xfs_check when metadir is enabled
|
||||
- xfs_io: support scrubbing metadata directory paths
|
||||
- libfrog: report metadata directories in the geometry report
|
||||
- man: update scrub ioctl documentation for metadir
|
||||
- man2: document metadata directory flag in fsgeom ioctl
|
||||
- man: document the -n parent mkfs option
|
||||
- man: fix ioctl_xfs_commit_range man page install
|
||||
- xfs_repair: fix maximum file offset comparison
|
||||
|
||||
- update to 6.12.0
|
||||
- xfs_io: add support for atomic write statx fields
|
||||
- xfs_repair: fix crasher in pf_queuing_worker
|
||||
- xfs: Reduce unnecessary searches when searching for the best extents
|
||||
- xfs_spaceman: add dependency on libhandle target
|
||||
- mkfs: add a config file for 6.12 LTS kernels
|
||||
- xfs_scrub_all: wait for services to start activating
|
||||
- xfs_repair: checking rt free space metadata must happen during phase 4
|
||||
- xfs_db: allow setting current address to log blocks
|
||||
- xfs_db: convert rtsummary geometry
|
||||
- xfs_db: convert rtbitmap geometry
|
||||
- xfs_db: enable conversion of rt space units
|
||||
- xfs_db: access arbitrary realtime blocks and extents
|
||||
- xfs_db: access realtime file blocks
|
||||
- xfs_db: make the daddr command target the realtime device
|
||||
- xfs_db: report the realtime device when associated with each io cursor
|
||||
- xfs_db: support passing the realtime device to the debugger
|
||||
- xfs_io: add atomic file update commands to exercise file commit range
|
||||
- xfs_io: add a commitrange option to the exchangerange command
|
||||
- xfs_fsr: port to new file exchange library function
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Oct 19 11:09:09 UTC 2024 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.11.0
|
||||
- mkfs: break up the rest of the rtinit() function
|
||||
- mkfs: clean up the rtinit() function
|
||||
- xfs_repair: use library functions for orphanage creation
|
||||
- xfs_repair: use library functions to reset root/rbm/rsum inodes
|
||||
- xfs_repair: don't crash in get_inode_parent
|
||||
- xfs_repair: fix exchrange upgrade
|
||||
- xfs_db: port the iunlink command to use the libxfs iunlink function
|
||||
- xfs_db/mdrestore/repair: don't use the incore struct xfs_sb for offsets into struct xfs_dsb
|
||||
- xfs_db/mkfs/xfs_repair: port to use XFS_ICREATE_UNLINKABLE
|
||||
- xfs_db: port the unlink command to use libxfs_droplink
|
||||
- libxfs: implement get_random_u32
|
||||
- libxfs: remove libxfs_dir_ialloc
|
||||
- libxfs: backport inode init code from the kernel
|
||||
- libxfs: pack icreate initialization parameters into a separate structure
|
||||
- xfs_io: add RWF_ATOMIC support to pwrite
|
||||
- libfrog: emulate deprecated attrlist functionality in libattr
|
||||
- misc: clean up code around attr_list_by_handle calls
|
||||
- fsck.xfs: fix fsck.xfs run by different shells when fsck.mode=force is set
|
||||
- libxfs: provide a memfd_create() wrapper if not present in libc
|
||||
- xfs_io: Fix fscrypt macros ordering
|
||||
- man: Update unit for fsx_extsize and fsx_cowextsize
|
||||
- xfs_db: release ip resource before returning from get_next_unlinked()
|
||||
- libxfs: kernel sync
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 4 11:33:31 UTC 2024 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.10.1
|
||||
- fix C++ compilation errors in xfs_fs.h
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 26 10:13:27 UTC 2024 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.10.0
|
||||
- debian: enable xfs_scrub_all systemd timer services by default
|
||||
- mkfs: set autofsck filesystem property
|
||||
- xfs_scrub: use the autofsck fsproperty to select mode
|
||||
- xfs_scrub: allow sysadmin to control background scrubs
|
||||
- xfs_property: add a new tool to administer fs properties
|
||||
- xfs_db: add a command to list xattrs
|
||||
- xfs_db: improve getting and setting extended attributes
|
||||
- xfs_io: edit filesystem properties
|
||||
- xfs_scrub: defer phase5 file scans if dirloop fails
|
||||
- xfs_repair: wipe ondisk parent pointers when there are none
|
||||
- xfs_scrub: detect and repair directory tree corruptions
|
||||
- xfs_repair: update ondisk parent pointer records
|
||||
- xfs_spaceman: report directory tree corruption in the health information
|
||||
- xfsprogs: support vectored scrub
|
||||
- man: document vectored scrub mode
|
||||
- man2: update ioctl_xfs_scrub_metadata.2 for parent pointers
|
||||
- mkfs: enable formatting with parent pointers
|
||||
- mkfs: Add parent pointers during protofile creation
|
||||
- xfs_repair: check parent pointers
|
||||
- xfs_db: compute hashes of parent pointers
|
||||
- xfs_db: add link and unlink expert commands
|
||||
- xfs_repair: build a parent pointer index
|
||||
- xfs_db: add a parents command to list the parents of a file
|
||||
- xfs_db: obfuscate dirent and parent pointer names consistently
|
||||
- xfs_db: report parent pointers embedded in xattrs
|
||||
- xfs_db: report parent bit on xattrs
|
||||
- xfs_db: report parent pointers in version command
|
||||
- xfs_scrub: use parent pointers to report lost file data
|
||||
- xfs_scrub: use parent pointers when possible to report file operations
|
||||
- xfs_logprint: decode parent pointers in ATTRI items fully
|
||||
- xfs_io: Add i, n and f flags to parent command
|
||||
- xfs_io: adapt parent command to new parent pointer ioctls
|
||||
- libfrog: report parent pointers to userspace
|
||||
- libfrog: add parent pointer support code
|
||||
- man: document the XFS_IOC_GETPARENTS ioctl
|
||||
- xfs_logprint: dump new attr log item fields
|
||||
- xfs_scrub_all: failure reporting for the xfs_scrub_all job
|
||||
- xfs_repair: check free space requirements before allowing upgrades
|
||||
- xfs_scrub_all: convert systemctl calls to dbus
|
||||
- xfs_scrub_all: trigger automatic media scans once per month
|
||||
- xfs_scrub: add an optimization-only mode
|
||||
- xfs_scrub_all: add CLI option for easier debugging
|
||||
- xfs_scrub_all: enable periodic file data scrubs automatically
|
||||
- xfs_scrub: automatic downgrades to dry-run mode in service mode
|
||||
- xfs_scrub_all: support metadata+media scans of all filesystems
|
||||
- xfs_scrub_all: fail fast on masked units
|
||||
- xfs_scrub_all: remove journalctl background process
|
||||
- xfs_scrub_all: only use the xfs_scrub@ systemd services in service mode
|
||||
- xfs_scrub: tune fstrim minlen parameter based on free space histograms
|
||||
- xfs_scrub: improve responsiveness while trimming the filesystem
|
||||
- xfs_scrub: tighten up the security on the background systemd service
|
||||
- xfs_scrub: don't call FITRIM after runtime errors
|
||||
- xfs_scrub: use dynamic users when running as a systemd service
|
||||
- xfs_scrub: report FITRIM errors properly
|
||||
- xfs_scrub.service: reduce background CPU usage to less than one core if possible
|
||||
- xfs_scrub: don't close stdout when closing the progress bar
|
||||
- xfs_scrub: fix the work estimation for phase 8
|
||||
- libfrog: print cdf of free space buckets
|
||||
- libfrog: print wider columns for free space histogram
|
||||
- xfs_scrub: ignore phase 8 if the user disabled fstrim
|
||||
- xfs_scrub: move FITRIM to phase 8
|
||||
- xfs_scrub: improve thread scheduling repair items during phase 4
|
||||
- xfs_scrub: avoid potential UAF after freeing a duplicate name entry
|
||||
- xfs_scrub: enable users to bump information messages to warnings
|
||||
- xfs_scrub: retry incomplete repairs
|
||||
- xfs_scrub: warn about difficult repairs to rt and quota metadata
|
||||
- xfs_scrub: any inconsistency in metadata should trigger difficulty warnings
|
||||
- mkfs: add a formatting option for exchange-range
|
||||
- xfs_repair: add exchange-range to file systems
|
||||
- xfs_scrub: fix missing scrub coverage for broken inodes
|
||||
- xfs_scrub: log when a repair was unnecessary
|
||||
- libfrog: advertise exchange-range support
|
||||
- xfs_io: create exchangerange command to test file range exchange ioctl
|
||||
- xfs_fsr: skip the xattr/forkoff levering with the newer swapext implementations
|
||||
- xfs_fsr: convert to bulkstat v5 ioctls
|
||||
- xfs_logprint: support dumping exchmaps log items
|
||||
- xfs_db: advertise exchange-range in the version command
|
||||
- libfrog: add support for exchange range ioctl family
|
||||
- libhandle: add support for bulkstat v5
|
||||
- man: document XFS_FSOP_GEOM_FLAGS_EXCHRANGE
|
||||
- man: document the exchange-range ioctl
|
||||
- xfs_repair: don't crash on -vv
|
||||
- xfsprogs: Remove support for split-/usr installs
|
||||
- libxfs: kernel sync
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jul 22 10:54:50 UTC 2024 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.9.0
|
||||
- xfs_db: Fix uninicialized error variable
|
||||
- mkfs.xfs: avoid potential overflowing expression in xfs_mkfs.c
|
||||
- xfs_io: fix mread with length 1 mod page size
|
||||
- xfs_repair: detect null buf passed to duration
|
||||
- xfs_io: fix gcc complaints about potentially uninitialized variables
|
||||
- xfs_scrub: upload clean bills of health
|
||||
- xfs_spaceman: report health of inode link counts
|
||||
- xfs_repair: reduce rmap bag memory usage when creating refcounts
|
||||
- xfs_repair: log when buffers fail CRC checks even if we just recompute it
|
||||
- xfs_scrub: use multiple threads to run scrubs that scan inodes
|
||||
- xfs_scrub: update health status if we get a clean bill of health
|
||||
- xfs_repair: verify on-disk rmap btrees with in-memory btree data
|
||||
- xfs_scrub: check file link counts
|
||||
- xfs_scrub: implement live quotacheck inode scan
|
||||
- libxfs: provide a kernel-compatible kasprintf
|
||||
- xfs_spaceman: report the health of quota counts
|
||||
- libxfs: partition memfd files to avoid using too many fds
|
||||
- libxfs: add xfile support
|
||||
- libxfs: teach buftargs to maintain their own buffer hashtable
|
||||
- libxfs: kernel sync
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 17 15:34:53 UTC 2024 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.8.0
|
||||
- xfs_repair: Dump both inode details in Phase 6 duplicate file check
|
||||
- libxfs: print the device name if flush-on-close fails
|
||||
- xfs_db: fix leak in flist_find_ftyp()
|
||||
- xfs_repair: support more than INT_MAX block maps
|
||||
- xfs_repair: constrain attr fork extent count
|
||||
- xfs_repair: support more than 2^32 owners per physical block
|
||||
- xfs_repair: support more than 2^32 rmapbt records per AG
|
||||
- xfs_db: add a bmbt inflation command
|
||||
- xfs_scrub: scan whole-fs metadata files in parallel
|
||||
- mkfs: allow sizing internal logs for concurrency
|
||||
- mkfs: allow sizing allocation groups for concurrency
|
||||
- mkfs: use a sensible log sector size default
|
||||
- xfs_io: add linux madvise advice codes
|
||||
- xfs_scrub: fix threadcount estimates for phase 6
|
||||
- xfs_db: improve number extraction in getbitval
|
||||
- xfs_repair: adjust btree bulkloading slack computations to match online repair
|
||||
- xfs: make rextslog computation consistent with mkfs
|
||||
- mkfs: fix log sunit rounding when external logs are in use
|
||||
- libxfs: kernel sync
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 18 19:13:22 UTC 2024 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.7.0
|
||||
- xfsprogs: Several configure script updates
|
||||
- xfs_io: Use system's SEEK_DATA and SEEK_HOLE definition
|
||||
- xfsprogs: Remove platform_defs.h generation on build time
|
||||
- xfs_db: Fix metadata read error due hardcoded initialization of bb_count
|
||||
- xfsprogs: Request 64-bit time_t where possible
|
||||
- xfsprogs: Remove use of LFS64 interfaces
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Apr 3 09:27:56 UTC 2024 - Hans-Peter Jansen <hpj@urpla.net>
|
||||
|
||||
- Switch to %autosetup in order to build with older rpm build
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 5 14:40:20 UTC 2024 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.6.0
|
||||
- xfs_scrub: add missing license and copyright information
|
||||
- xfs_db: report the device associated with each io cursor
|
||||
- libxfs: Fix UAF in a requeued EFI
|
||||
- xfs_io: Add new option, to exercise log2_data_unit_size in kernel fscrypt_policy_v2
|
||||
- xfs_db: Add upport to read from external log device
|
||||
- metadump: New metadump format
|
||||
- xfs_quota: fix missing mount point warning
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 13 14:45:05 UTC 2023 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.5.0
|
||||
- libxfs: fix atomic64_t detection on x86_32
|
||||
- libxfs: use XFS_IGET_CREATE when creating new files
|
||||
- libfrog: fix overly sleep workqueues
|
||||
- xfs_db: use directio for device access
|
||||
- libxfs: make platform_set_blocksize optional with directio
|
||||
- mkfs: add a config file for 6.6 LTS kernels
|
||||
- mkfs: enable reverse mapping by default
|
||||
- mkfs: enable large extent counts by default
|
||||
- xfs_db: create unlinked inodes
|
||||
- xfs_db: dump unlinked buckets
|
||||
- xfsprogs: don't allow udisks to automount XFS filesystems with no prompt
|
||||
- xfs_repair: fix repair failure caused by dirty flag being abnormally set on buffer
|
||||
|
||||
- drop 0001-repair-shift-inode-back-into-place-if-corrupted-by-b.patch
|
||||
|
||||
This was a fix for a regression that occurred in SLE12 SP1. We can
|
||||
safely drop this, as upgrading to SLE15 (and later) is only supported
|
||||
from SLE12-SP4.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 20 08:45:36 UTC 2023 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
- update to 6.4.0:
|
||||
- xfs_db: expose the flag in rmapbt keys
|
||||
- xfs_repair: warn about unwritten bits set in rmap btree keys
|
||||
- xfs_repair: check low keys of rmap btrees
|
||||
- xfs_repair: always perform extended xattr checks on uncertain inodes
|
||||
- xfs_repair: fix messaging when fixing imap due to sparse cluster
|
||||
- xfs_repair: fix messaging in longform_dir2_entry_check_data
|
||||
- xfs_repair: fix messaging when shortform_dir2_junk is called
|
||||
- xfs_repair: don't log inode problems without printing resolution
|
||||
- xfs_repair: don't spray correcting imap all by itself
|
||||
- libxcmd: Fix crash due to missing return value check on add_command()
|
||||
- xfs_db: make the hash command print the dirent hash
|
||||
- xfs_db: Add new cmd to create dirents and xattrs that induce dahash collisions
|
||||
- mkfs: deprecate the ascii-ci feature
|
||||
- xfs_db: fix metadump name obfuscation for ascii-ci filesystems
|
||||
- libxfs: kernel sync
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon May 22 19:51:34 UTC 2023 - Anthony Iliopoulos <ailiop@suse.com>
|
||||
|
||||
@@ -2260,4 +2769,3 @@ Fri Jun 15 10:36:23 CEST 2001 - choeger@suse.de
|
||||
Mon May 21 14:30:40 CEST 2001 - choeger@suse.de
|
||||
|
||||
- first version
|
||||
|
||||
|
BIN
xfsprogs.keyring
BIN
xfsprogs.keyring
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package xfsprogs
|
||||
#
|
||||
# Copyright (c) 2023 SUSE LLC
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -25,7 +25,7 @@
|
||||
%endif
|
||||
%define libname libhandle1
|
||||
Name: xfsprogs
|
||||
Version: 6.3.0
|
||||
Version: 6.15.0
|
||||
Release: 0
|
||||
Summary: Utilities for managing the XFS file system
|
||||
License: GPL-2.0-or-later
|
||||
@@ -37,9 +37,9 @@ Source2: %{name}.keyring
|
||||
Source3: module-setup.sh.in
|
||||
Source4: dracut-fsck-help.txt
|
||||
Patch0: xfsprogs-docdir.diff
|
||||
Patch1: 0001-repair-shift-inode-back-into-place-if-corrupted-by-b.patch
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libblkid-devel
|
||||
BuildRequires: libedit-devel
|
||||
BuildRequires: libinih-devel
|
||||
@@ -98,19 +98,17 @@ You should install xfsprogs-devel if you want to develop XFS file
|
||||
system-specific programs. If you install xfsprogs-devel, you will also
|
||||
want to install xfsprogs.
|
||||
|
||||
%package -n xfsprogs-scrub
|
||||
%package scrub
|
||||
Summary: XFS scrubbing scripts and service files
|
||||
Group: System/Filesystems
|
||||
Requires: xfsprogs
|
||||
|
||||
%description -n xfsprogs-scrub
|
||||
%description scrub
|
||||
Scripts and systemd service files for background scrubbing of metadata
|
||||
on xfs filesystems.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
aclocal -I m4
|
||||
@@ -148,16 +146,16 @@ install -m 0755 module-setup.sh %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
|
||||
install -m 0644 %{SOURCE4} %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
|
||||
|
||||
%if %{with systemd}
|
||||
%pre -n xfsprogs-scrub
|
||||
%pre scrub
|
||||
%service_add_pre xfs_scrub_all.service xfs_scrub_all.timer
|
||||
|
||||
%post -n xfsprogs-scrub
|
||||
%post scrub
|
||||
%service_add_post xfs_scrub_all.service xfs_scrub_all.timer
|
||||
|
||||
%preun -n xfsprogs-scrub
|
||||
%preun scrub
|
||||
%service_del_preun xfs_scrub_all.service xfs_scrub_all.timer
|
||||
|
||||
%postun -n xfsprogs-scrub
|
||||
%postun scrub
|
||||
%service_del_postun xfs_scrub_all.service xfs_scrub_all.timer
|
||||
%endif
|
||||
|
||||
@@ -173,7 +171,6 @@ install -m 0644 %{SOURCE4} %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
|
||||
%{?regenerate_initrd_posttrans}
|
||||
|
||||
%files -f %{name}.lang
|
||||
%defattr(-,root,root,755)
|
||||
%{_sbindir}/*
|
||||
%exclude %{_sbindir}/xfs_scrub_all
|
||||
%{_mandir}/man[258]/*
|
||||
@@ -194,26 +191,27 @@ install -m 0644 %{SOURCE4} %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/
|
||||
%{_prefix}/share/xfsprogs/mkfs/*
|
||||
|
||||
%files -n %{libname}
|
||||
%defattr(-,root,root,755)
|
||||
%{_libdir}/libhandle.so.*
|
||||
|
||||
%files -n xfsprogs-devel
|
||||
%defattr(-,root,root,755)
|
||||
%files devel
|
||||
%{_includedir}/xfs
|
||||
%{_libdir}/libhandle.so
|
||||
%{_mandir}/man3/*
|
||||
|
||||
%files -n xfsprogs-scrub
|
||||
%defattr(-,root,root,755)
|
||||
%dir %{_libdir}/xfsprogs/
|
||||
%{_libdir}/xfsprogs/xfs_scrub_all.cron
|
||||
%files scrub
|
||||
%dir %{_libexecdir}/xfsprogs
|
||||
%{_prefix}/share/xfsprogs/xfs_scrub_all.cron
|
||||
%{_sbindir}/xfs_scrub_all
|
||||
%if %{with systemd}
|
||||
%{_libdir}/xfsprogs/xfs_scrub_fail
|
||||
%{_libexecdir}/xfsprogs/xfs_scrub_fail
|
||||
%{_unitdir}/xfs_scrub@.service
|
||||
%{_unitdir}/xfs_scrub_all.service
|
||||
%{_unitdir}/xfs_scrub_all.timer
|
||||
%{_unitdir}/xfs_scrub_fail@.service
|
||||
%{_unitdir}/xfs_scrub_all_fail.service
|
||||
%{_unitdir}/xfs_scrub_media@.service
|
||||
%{_unitdir}/xfs_scrub_media_fail@.service
|
||||
%{_unitdir}/system-xfs_scrub.slice
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
Reference in New Issue
Block a user