Accepting request 495389 from home:jeff_mahoney:branches:filesystems

- 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

OBS-URL: https://build.opensuse.org/request/show/495389
OBS-URL: https://build.opensuse.org/package/show/filesystems/xfsprogs?expand=0&rev=47
This commit is contained in:
Stephan Kulow 2017-05-23 18:14:04 +00:00 committed by Git OBS Bridge
parent 2480edf5c2
commit 7b8ec2da86
9 changed files with 595 additions and 103 deletions

4
dracut-fsck-help.txt Normal file
View File

@ -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.

16
module-setup.sh.in Normal file
View File

@ -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@@"
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e49beb314984efbd0d758abb5c6137db3bb60a88e59e1e94c00defb536cf89f8
size 1524382

Binary file not shown.

17
xfsprogs-4.9.0.tar.sign Normal file
View File

@ -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-----

3
xfsprogs-4.9.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f1e60a9a54583dba82fa506dd9b59bdec110a968f80f507bf5f93b263af7a4df
size 1087940

View File

@ -1,4 +1,249 @@
-------------------------------------------------------------------
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

View File

@ -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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
Qb8+xdjMo4eP/RlAIo6wkzXg0wwILyCQ417i16Q=
=mKV3
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -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)