diff --git a/dracut-fsck-help.txt b/dracut-fsck-help.txt new file mode 100644 index 0000000..844b9b6 --- /dev/null +++ b/dracut-fsck-help.txt @@ -0,0 +1,4 @@ +Recovery of xfs file systems is not automated. We suggest using the +'xfs_repair' tool to repair any damage to the file system. If that +doesn't work you may zero the xfs log with the '-L' option to +xfs_repair, however this can cause the loss of user files and/or data. diff --git a/module-setup.sh.in b/module-setup.sh.in new file mode 100644 index 0000000..8c8e99d --- /dev/null +++ b/module-setup.sh.in @@ -0,0 +1,16 @@ +#!/bin/bash + +# called by dracut +check() { + return 0 +} + +# called by dracut +depends() { + return 0 +} + +# called by dracut +install() { + inst_fsck_help "xfs" "@@PATH_TO_HELP@@" +} diff --git a/xfsprogs-4.5.0.tar.gz b/xfsprogs-4.5.0.tar.gz deleted file mode 100644 index 6f84e00..0000000 --- a/xfsprogs-4.5.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e49beb314984efbd0d758abb5c6137db3bb60a88e59e1e94c00defb536cf89f8 -size 1524382 diff --git a/xfsprogs-4.5.0.tar.gz.sig b/xfsprogs-4.5.0.tar.gz.sig deleted file mode 100644 index 790d535..0000000 Binary files a/xfsprogs-4.5.0.tar.gz.sig and /dev/null differ diff --git a/xfsprogs-4.9.0.tar.sign b/xfsprogs-4.9.0.tar.sign new file mode 100644 index 0000000..cc5637d --- /dev/null +++ b/xfsprogs-4.9.0.tar.sign @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.14 (GNU/Linux) + +iQIcBAABAgAGBQJYbtG4AAoJECCuFpLhPd7gL8kP/3FIJk78XAEKwqlIgTqB1+Yz +macnqh7FYbJbYUPb+8xg99F8S6BfsxcI6w085DUeYUV2HW6F105iQu6dYtgRjIlu +leaS5bntPNxCbK7yQCkbvwSDipzb3gYZsm5GHoYB1hOYJhY/o3uMCJzipLDgCZtP +MlFn4OqNcON98REeTqn6An8gCrHLMbvqf4K1s/5mQ1JinbsgHDfz4kwIbESaChJT +BbanUa7pkhTadBvVy/dLvwzqOdJkJZDiuvZDqC25+deHakw3gL48tTAhHh5OWE3m +IyU24g8Ju/mdu3t0uiz3rIRqngCZ/bvY9STM2bT4/VyXA016SguMAWX/LrqIV64C +C402v9V2UJbxtCiNubJ6UUTbY/tIJf5gY3ASpvXfN9RGTN73YE1jq5KE9rjn0adz +rEPsoBrIBF0oeq2u49zJow/fH3h2DhsiGgRnFZogXbfz3ROqHiAyzUmkI7j+Rhx7 +ky23wIRCvlavGojcW+9YUwcV5hjCxXqgWmRMWyCe83zLzAUMtfYOo6Bm+cDAlKYu +c+Wl20r1s+GCT82NIs2//hUP6+yXPZT9TNBLwKhXg5aeD8cZcsaXkefW8Di/658j +3UoCBQ0UsYe7caa4aNPa2C8SDlKpGm2BTUP6GEEdgYjFDBL6tak6EHbjD5w/mXNQ +yGpu9OXaOSeHJTL1sGL5 +=SvzB +-----END PGP SIGNATURE----- diff --git a/xfsprogs-4.9.0.tar.xz b/xfsprogs-4.9.0.tar.xz new file mode 100644 index 0000000..196171a --- /dev/null +++ b/xfsprogs-4.9.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1e60a9a54583dba82fa506dd9b59bdec110a968f80f507bf5f93b263af7a4df +size 1087940 diff --git a/xfsprogs.changes b/xfsprogs.changes index 6a4e82f..2251010 100644 --- a/xfsprogs.changes +++ b/xfsprogs.changes @@ -1,11 +1,256 @@ ------------------------------------------------------------------- +Tue May 16 14:52:53 UTC 2017 - jeffm@suse.com + +- Update to 4.9.0 + * xfs_quota: handle wrapped id from GETNEXTQUOTA + * xfs_repair: don't indicate dirtiness if FSGEOMETRY fails + * xfs_repair: junk leaf attribute if count == 0 + * xfs_repair: fix some potential null pointer deferences + * xfs_repair: fix bogus rmapbt record owner check + * xfs.h: require transparent LFS for all users + * xfs_io: Fix initial -m option + * xfs_io: add command line option -i to start an idle thread + * xfsprogs: Update FSF address in COPYING file + * mkfs.xfs: format reflink enabled filesystems + * xfs_repair: use thread pools to sort rmap data + * xfs_repair: check for mergeable refcount records + * xfs_repair: use range query when while checking rmaps + * xfs_repair: check the CoW extent size hint + * xfs_repair: complain about copy-on-write leftovers + * xfs_repair: rebuild the refcount btree + * xfs_repair: check the refcount btree against our observed reference counts when -n + * xfs_repair: fix inode reflink flags + * xfs_repair: record reflink inode state + * xfs_repair: process reverse-mapping data into refcount data + * xfs_repair: handle multiple owners of data blocks + * xfs_repair: check the existing refcount btree + * xfs_repair: fix get_agino_buf to avoid corrupting inodes + * xfs_logprint: support bmap redo items + * xfs_logprint: support refcount redo items + * xfs_logprint: support cowextsize reporting in log contents + * xfs_io: try to unshare copy-on-write blocks via fallocate + * xfs_io: provide long-format help for falloc + * xfs_io: support injecting the 'per-AG reservation critically low' error + * xfs_io: add refcount+bmap error injection types + * xfs_io: get and set the CoW extent size hint + * libxfs: add autoconf mechanism to override system header fsxattr + * xfs_io: bmap should support querying CoW fork, shared blocks + * xfs_growfs: report the presence of the reflink feature + * xfs_db: print one array element per line + * xfs_db: deal with the CoW extent size hint + * xfs_db: metadump should copy the refcount btree too + * xfs_db: add support for checking the refcount btree + * xfs_db: dump refcount btree data + * libxfs: add fsxattr flags and fields for cowextsize + * libxfs: free the CoW fork from an inode + * libxfs: plumb in bmap deferred op log items + * libxfs: plumb in refcount deferred op log items + * libxfs: add xfs_refcount.h to the standard include list + * libxfs: initialize the in-core mount context for refcount btrees + * xfs_buflock: handling parsing errors more gracefully + * xfs_logprint: fix up the RUI printing code to reflect new format + * xfs: defer should abort intent items if the trans roll fails + * xfs: add xfs_trim_extent + * libxfs: clean up _calc_dquots_per_chunk + * xfs: rework refcount cow recovery error handling + * xfs: implement swapext for rmap filesystems + * xfs: recognize the reflink feature bit + * xfs: simulate per-AG reservations being critically low + * xfs: don't mix reflink and DAX mode for now + * xfs: check for invalid inode reflink flags + * xfs: convert unwritten status of reverse mappings for shared files + * xfs: use interval query for rmap alloc operations on shared files + * xfs: add shared rmap map/unmap/convert log item types + * xfs: increase log reservations for reflink + * xfs: try other AGs to allocate a BMBT block + * xfs: preallocate blocks for worst-case btree expansion + * xfs: create a separate cow extent size hint for the allocator + * xfs: teach get_bmapx about shared extents and the CoW fork + * xfs: store in-progress CoW allocations in the refcount btree + * xfs: support removing extents from CoW fork + * xfs: support allocating delayed extents in CoW fork + * xfs: support bmapping delalloc extents in the CoW fork + * xfs: introduce the CoW fork + * xfs: don't allow reflinked dir/dev/fifo/socket/pipe files + * xfs: add reflink feature flag to geometry + * xfs: return work remaining at the end of a bunmapi operation + * xfs: implement deferred bmbt map/unmap operations + * xfs: pass bmapi flags through to bmap_del_extent + * xfs: map an inode's offset to an exact physical block + * xfs: log bmap intent items + * xfs: create bmbt update intent log items + * xfs: introduce reflink utility functions + * xfs: reserve AG space for the refcount btree root + * xfs: adjust refcount when unmapping file blocks + * xfs: connect refcount adjust functions to upper layers + * xfs: adjust refcount of an extent of blocks in refcount btree + * xfs: log refcount intent items + * xfs: create refcount update intent log items + * xfs: add refcount btree operations + * xfs: account for the refcount btree in the alloc/free log reservation + * xfs: define the on-disk refcount btree format + * xfs: refcount btree add more reserved blocks + * xfs: introduce refcount btree definitions + * xfs: remote attribute blocks aren't really userdata + * xfs: set up per-AG free space reservations + * xfs: defer should allow ->finish_item to request a new transaction + * xfs: count the blocks in a btree + * xfs: create a standard btree size calculator code + * xfs: convert RUI log formats to use variable length arrays + * xfs: track log done items directly in the deferred pending work item + * xfs: fix superblock inprogress check + +- Update to 4.8.0 + * Add support for reflinks + * xfs_io: fix inode command with "-n" for bogus inode + * xfs_io: fix inode command help and argsmax + * xfs_repair: add freesp btree block overflow to the free space + * xfs_repair: fix bogosity when rmapping new AGFL blocks + * libxcmd: fix counting of xfs entries in fs_table_insert + * xfs_copy: Fix meta UUID handling on multiple copies + * xfs_repair: fix segfault from uninitialized tp in mv_orphanage + * xfs_io: allow chattr & chproj on foreign filesystems + * xfs_quota: fix free command for foreign fs + * xfs_quota: un-flag non-foreign-capable commands + * xfs_quota: Enable 3 more foreign commands + * xfs_quota: add case for foreign fs, disabled regardless of foreign_allowed + * xfs_quota: print and path output formatting: maintain reverse compatibility + * libxcmd: populate fs table with xfs entries first, foreign entries last + * xfs_repair: exit with status 2 if log dirtiness is unknown + * xfs_db: pass the inode cluster offset when copying inodes + * xfs_repair: don't crash on ENOSPC rebuilding a btree + * libxfs/linux.c: Replace use of ustat by stat + * db: write via array indexing doesn't work + * xfs_db: properly set dquot_buf when operating on dquot + * xfs_quota: fix missing break after foreign_allowed option + * xfs_db: add crc manipulation commands + * xfs_quota: certain commands must always be available + * xfs_quota: add capabilities for use on non-XFS filesystems + * xfs_quota: wire up XFS_GETQSTATV + * xfs_metadump: don't warn about unobfuscated log with -o + * xfs_repair: fix naming problems in repair/rmap.c + * misc: fix libxfs api violations + * misc: fix Coverity errors + * libxcmd: fix mount option parsing to find rt/log devices + * xfs: simple btree query range should look right if LE lookup fails + * xfs: fix some key handling problems in _btree_simple_query_range + * xfs: don't perform lookups on zero-height btrees + * mkfs.xfs: create filesystems with reverse-mappings + * mkfs: set agsize prior to calculating minimum log size + * xfs_repair: check for impossible rmap record field combinations + * xfs_repair: look for mergeable rmaps + * xfs_repair: merge data & attr fork reverse mappings + * xfs_repair: add per-AG btree blocks to rmap data and add to rmapbt + * xfs_repair: rebuild reverse-mapping btree + * xfs_repair: check existing rmapbt entries against observed rmaps + * xfs_repair: add fixed-location per-AG rmaps + * xfs_repair: add inode bmbt block rmaps + * xfs_repair: record and merge raw rmap data + * xfs_repair: collect reverse-mapping data for refcount/rmap tree rebuilding + * xfs_repair: create a slab API for allocating arrays in large chunks + * xfs_repair: fix fino_bno calculation when rmapbt is enabled + * xfs_repair: use rmap btree data to check block types + * xfs_logprint: support rmap redo items + * xfs_io: add rmap-finish error injection type + * xfs_growfs: report rmapbt presence + * xfs_db: introduce the 'fsmap' command to find what owns a set of fsblocks + * xfs_db: copy the rmap btree + * xfs_db: spot check rmapbt + * xfs_db: display rmap btree contents + * libxfs: add deferred ops item handlers for userspace + * libxfs: fix various oddities in the kernel import + * xfs: store rmapbt block count in the AGF + * xfs_io: add free-extent error injection type + * xfs_logprint: fix formatting issues with the EFI printing code + * xfs_repair: preserve in-core meta_uuid while zeroing unused sb portions + * xfs_io: bmap should print 'delalloc', not '-2' + * xfs_buflock: add a tool that can be used to find buffer deadlocks + * libxfs: fix xfs_isset pointer calculation + * xfs: increase XFS_BTREE_MAXLEVELS to fit the rmapbt + * xfs: change xfs_bmap_{finish,cancel,init,free} -> xfs_defer_* + * xfs: rework xfs_bmap_free callers to use xfs_defer_ops + * xfs: enable the xfs_defer mechanism to process extents to free + * xfs: introduce interval queries on btrees + * xfs: support btrees with overlapping intervals for keys + * xfs: add function pointers for get/update keys to the btree + * xfs: during btree split, save new block key & ptr for future insertion + * xfs: set *stat=1 after iroot realloc + * xfs: fix locking of the rt bitmap/summary inodes + * xfs: fix attr shortform structure alignment on cris + +- Update to 4.7.0 + * xfs_quota: fall back silently if XFS_GETNEXTQUOTA fails + * xfs_io: implement 'copy_range' command + * xfs_repair: low memory shouldn't indicate corruption on exit + * xfs_repair: don't call xfs_sb_quota_from_disk twice + * xfs_repair: resolve Coverity OVERFLOW_BEFORE_WIDEN + * libxfs: fix double free in libxfs_alloc_file_space + * libxfs: fix use after from in xfs_trans_roll + * xfs: always set rvalp in xfs_dir2_node_trim_free + * xfs: borrow indirect blocks from freed extent when available + * xfs: update freeblocks counter after extent deletion + * xfs: fix computation of inode btree maxlevels + * xfs_check: process sparse inode chunks correctly + * xfs_db: Revert "xfs_db: make check work for sparse inodes" + * xfs_repair: set rsumino version to 2 + * mkfs: better error with incorrect b/s value suffix usage + * mkfs: fix -l su minval + * xfs.h: define XFS_IOC_FREEZE even if FIFREEZE is defined + * xfs_quota: only round up timer reporting > 1 day + * xfs_quota: check report_mount return value + * xfs_repair: new secondary superblock search method + * libxcmd: generalize topology functions + * xfs_db: defang frag command + * db: limit AGFL bno array printing + * xfs_db: allow recalculating CRCs on invalid metadata + * xfs_db: fix unaligned accesses + * metadump: limit permissible sector sizes + * mkfs: conflicting values with disabled crc should fail + * mkfs: add optional 'reason' for illegal_option + * mkfs: unit conversions are case insensitive + * mkfs: don't treat files as though they are block devices + * mkfs: add string options to generic parsing + * mkfs: encode conflicts into parsing table + * mkfs: merge getnum + * mkfs: table based parsing for converted parameters + * mkfs: add respecification detection to generic parsing + * mkfs: use getnum_checked for all ranged parameters + * mkfs: getbool is redundant + * mkfs: structify input parameter passing + * mkfs: validate logarithmic parameters sanely + * mkfs: validate all input values + * mkfs: Sanitise the superblock feature macros + * mkfs: sanitise ftype parameter values. + * xfsprogs: use common code for multi-disk detection + * xfs_repair: fix agf limit error messages + * xfs_quota: print quota id number if the name can't be found + * xfs_quota: fully support users and groups beginning with digits + * xfs_io: allow mmap command to reserve some free space + * xfs_io: modify argument errors of mremap command + * Merge branch 'progs-misc-fixes-for-4.6' into for-master + * Merge branch 'libxfs-4.6-sync' into for-master + * xfs_io: implement 'inode' command + * mkfs: fix crash when initializing rbmip + * libxfs: fix up mismerge in libxfs_iflush_int + * xfs: RT bitmap and summary buffers need verifiers + * xfs: RT bitmap and summary buffers are not typed + * xfs: handle errors from ->free_blocks in xfs_btree_kill_iroot + * xfs: wire up Q_XGETNEXTQUOTA / get_nextdqblk +------------------------------------------------------------------- +Tue May 16 14:48:49 UTC 2017 - jeffm@suse.com + +- Advise user of fs recovery options when we fail to mount (fate#320443) + * Add dracut-fsck-help.txt + * Add module-setup.sh.in + +------------------------------------------------------------------ Mon Mar 28 09:12:17 UTC 2016 - mlin@suse.com - Update to 4.5.0 * xfs_io: prevent divide-by-zero on random IO * xfs_db: dquot command documentation fixes * xfs_quota: better command line parsing and documentation - * libxfs: update to match kernel 4.5-rc1 code base + * libxfs: update to match kernel 4.5-rc1 code base * xfs_io: add DAX inode flag support * repair: scalability improvements on large corrupt filesystems * repair: directory rebuild fixes diff --git a/xfsprogs.keyring b/xfsprogs.keyring index 0402f64..4187ecb 100644 --- a/xfsprogs.keyring +++ b/xfsprogs.keyring @@ -1,98 +1,293 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2 +Comment: GPGTools - http://gpgtools.org -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 -=DGQa +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 +=mKV3 -----END PGP PUBLIC KEY BLOCK----- diff --git a/xfsprogs.spec b/xfsprogs.spec index c1ec7c0..88ce50a 100644 --- a/xfsprogs.spec +++ b/xfsprogs.spec @@ -1,7 +1,7 @@ # # spec file for package xfsprogs # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,16 +16,20 @@ # +%define _dracutmodulesdir %{_libexecdir}/dracut/modules.d + Name: xfsprogs -Version: 4.5.0 +Version: 4.9.0 Release: 0 Summary: Utilities for managing the XFS file system License: GPL-2.0+ Group: System/Filesystems Url: http://xfs.org -Source0: ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-%{version}.tar.gz -Source1: ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-%{version}.tar.gz.sig +Source0: https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-%{version}.tar.xz +Source1: https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-%{version}.tar.sign Source2: %{name}.keyring +Source3: module-setup.sh.in +Source4: dracut-fsck-help.txt Patch0: xfsprogs-docdir.diff BuildRequires: libblkid-devel BuildRequires: readline-devel @@ -79,6 +83,9 @@ export LIBUUID=%{_libdir}/libuuid.a %configure --enable-readline=yes make %{?_smp_mflags} V=1 +PATH_TO_HELP="%{_dracutmodulesdir}/95suse-xfs/dracut-fsck-help.txt" +sed -e "s|@@PATH_TO_HELP@@|$PATH_TO_HELP|" %{SOURCE3} > module-setup.sh + %install export DIST_ROOT=%{buildroot} make install @@ -89,6 +96,9 @@ rm %{buildroot}/%{_lib}/libhandle.a rm %{buildroot}/%{_lib}/libhandle.la mv %{buildroot}/%{_lib}/* %{buildroot}%{_libdir} %find_lang %{name} +install -m 0755 -d %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/ +install -m 0755 module-setup.sh %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/ +install -m 0644 %{SOURCE4} %{buildroot}/%{_dracutmodulesdir}/95suse-xfs/ %if 0%{?suse_version} >= 1310 %post @@ -117,6 +127,11 @@ mv %{buildroot}/%{_lib}/* %{buildroot}%{_libdir} %{_libdir}/libhandle.so.* %doc %{_mandir}/man[58]/* %doc %{_defaultdocdir}/%{name} +%dir %{_libexecdir}/dracut +%dir %{_libexecdir}/dracut/modules.d +%dir %{_dracutmodulesdir}/95suse-xfs/ +%{_dracutmodulesdir}/95suse-xfs/dracut-fsck-help.txt +%{_dracutmodulesdir}/95suse-xfs/module-setup.sh %files devel %defattr(-,root,root,755)