Darrick J. Wong [Thu, 21 Jul 2016 23:47:32 +0000 (16:47 -0700)]
reflink: test cross-mountpoint reflink and dedupe
Test sharing blocks via reflink and dedupe between two different
mountpoints of the same filesystem. This shouldn't work, since we
don't allow cross-mountpoint functions.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <eguan@redhat.com>
Darrick J. Wong [Fri, 5 Aug 2016 07:38:54 +0000 (15:38 +0800)]
generic: test accurate shared extent reporting
Ensure that we can create a file with a single extent, reflink two
blocks out of the middle of that extent, and the resulting fiemap
reports two shared extents, instead of lazily reporting the entire
huge extent as shared.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Eric Whitney [Thu, 4 Aug 2016 20:02:46 +0000 (16:02 -0400)]
common/defrag: rework _require_defrag for ext4
The existing _require_defrag function rejects ext4 file systems
mounted with the dax option or constructed without extents.
However, there are also a number of other ext4 file system
configuration cases that do not currently support online defrag,
including encryption, data journaling, and bigalloc. In the future,
online defrag functionality may be implemented for some of these,
and new configuration cases could be added that don't support it.
Rather than add a laundry list of mount and file system
configuration options to the existing _require_defrag function that
will need ongoing maintenance, use the available src/e4compact
program to directly determine whether the kernel supports ext4's
move extent ioctl on the test file system.
Darrick J. Wong [Fri, 5 Aug 2016 02:03:51 +0000 (19:03 -0700)]
xfs: test attr_list_by_handle cursor iteration
Apparently the XFS attr_list_by_handle ioctl has never actually
copied the cursor contents back to user space, which means that
iteration has never worked. Add a test case for this and see
"xfs: in _attrlist_by_handle, copy the cursor back to userspace".
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Darrick J. Wong [Thu, 4 Aug 2016 00:34:35 +0000 (17:34 -0700)]
common/dmerror: fix mount option issues
Calling _mount doesn't work when we want to add mount options such
as realtime devices. Fix it by calling _scratch_options first then
mount with $SCRATCH_OPTIONS.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Darrick J. Wong [Wed, 3 Aug 2016 22:45:36 +0000 (15:45 -0700)]
common/rc: optionally test xfs_repair index rebuilding
Run xfs_repair twice more at the end of each test -- once to rebuild
the btree indices, and again with -n to check the rebuild work.
This is in addition to the regular dry-run spot check.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Darrick J. Wong [Thu, 21 Jul 2016 23:47:07 +0000 (16:47 -0700)]
xfs/129: fix post-metadump remounting idiocy
Use the standard _scratch_mount to mount the filesystem from the
restored image, instead of trying to call mount directly. This is
needed in case we had custom mount options (like rtdev).
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <eguan@redhat.com>
Darrick J. Wong [Thu, 21 Jul 2016 23:46:35 +0000 (16:46 -0700)]
xfs/310: fix the size calculation for the huge device
Fix the calculation of the dmhuge size. The previous calculation
tried to calculate the size correctly, but got it wrong for 1k block
sizes. Therefore, clean the whole mess up.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <eguan@redhat.com>
Darrick J. Wong [Thu, 21 Jul 2016 23:46:21 +0000 (16:46 -0700)]
xfs/26[34]: remove duplicate tests
These two tests were accidentally double-added as xfs/30[78], but
the newer versions have fixed up helper usage and fewer whitespace
problems, so nuke the old tests.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <eguan@redhat.com>
The recent direct I/O path refactor changed the function name in the
racing read case. Update the test case to handle the new name in
addition to the old one.
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Sometimes it's useful to keep track of why we're excluding a particular
test. Technically, we can include whatever explanation we want in the
exclude file since we just grep for the test names, but properly
supporting comments is a little more robust. This patch makes it so that
the rest of a line after a '#' is ignored.
The upper dentry may become stale before we remove it from overlay,
e.g. file was removed from upperdir directly, which triggered
warning/oops in ovl_remove_and_whiteout().
Commit cfc9fde0b07c ("ovl: verify upper dentry in
ovl_remove_and_whiteout()") fixed this issue.
Test dump overlay private xattr on overlayfs with multiple lower
dirs. All the lower layers, except the lowest one, should honor
overlay private xattr "trusted.overlay", which means it should not
be visible to user.
Commit b581755b1c56 ("ovl: xattr filter fix") fixed this issue.
Wang Xiaoguang [Mon, 25 Jul 2016 07:43:30 +0000 (15:43 +0800)]
generic: run write(2) and fallocate(2) in parallel
Currently in btrfs, there is something wrong with fallocate(2)'s
data space reservation, it'll temporarily occupy more data space
thant it really needs, which in turn will impact other operations'
data request.
In this test case, it runs write(2) and fallocate(2) in parallel and
the total needed data space for these two operations don't exceed
whole fs free data space, to see whether we will get any unexpected
ENOSPC error.
Zorro Lang [Fri, 22 Jul 2016 10:24:06 +0000 (18:24 +0800)]
xfs/106: rewrite to make it a reliable regression test
xfs/106 is testing basic functions of xfs_quota command, but
there're three problems prevent people from running it as a reliable
regression test (i.e. it's not in 'auto' group):
- It tests unavailable commands in current xfs_quota, e.g. "warn"
- Lack of test coverage of important commands, e.g. "disable,
enable, off and remove" commands
- Test output doesn't match golden image
So rewrite this case to test as many xfs_quota sub-commands and
options as possible and add it to 'auto' group, except:
- some "-v" options
- all "-a" options, because it's hard to get deterministic output
- default quota, this should be already covered by other tests
- project command options, I will write another case to test it
- report command -l option, which is a new option and will cause
failure when testing with xfsprogs prior to 3.1 version.
- quot command -c option, which may output different histogram in
different systems or hosts.
- warn command, which is not currently implemented.
- print, df, free, help, quit and path commands.
Jan Kara [Thu, 21 Jul 2016 08:55:06 +0000 (10:55 +0200)]
generic/235: Fix false failures for some quota formats
Different quota format may print additional information in
repquota(8) output after standard quota information is printed. If
format does support this additional printouts, repquota(8) will
separate possible output by two empty lines even if format handler
doesn't actually printout anything (which is currently always the
case for queries test generic/235 does). If format doesn't support
additional printouts, these two empty lines are not present in the
output. This inconsistency causes false failures for some quota
formats.
Fix the problem by filtering out empty lines out of repquota(8)
output.
Signed-off-by: Jan Kara <jack@suse.cz> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Update the following quick/auto tag based on their execution time
btrfs/007
btrfs/050
btrfs/100
btrfs/101
Two systems are used to determine their execution time. One is
backed by an SATA spinning rust, whose maximum R/W speed is about
100MB/s, modern desktop performance. (VM1)
Another one is a VM inside a openstack pool, with stronger CPU and
memory performance along with high latency storage. Maximum R/W
speed is around 150MB/s, latency is much higher than normal HDD
though. (VM2)
The 'quick' standard is a little more restrict, only when both
systems pass the test within 30s(+/- 10%), while 'auto' is less
restrict, any system can pass within 5min(+/- 10%) will still stay
in 'auto' group.
Other test cases don't fit both standards on both systems will not
be modified.
Jan Kara [Thu, 21 Jul 2016 06:17:35 +0000 (08:17 +0200)]
generic/294: Filter backquotes from mknod error output
Really old versions of coreutils (mine are 8.12) quote a filename in the
output with a backquote in the beginning and normal quote in the end.
Improve _filter_mknod to handle that.
Signed-off-by: Jan Kara <jack@suse.cz> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Eric Sandeen [Tue, 19 Jul 2016 19:53:25 +0000 (12:53 -0700)]
generic/075,112: fix up fsx error handling
When fsx fails we try to copy failure state to the results/
dir, but in some cases we are using $seqres instead of
$seq or $seq instead of $here/$seq; fix this up so the
failure state is accurately captured in the results/ dir.
For fully deduped file, whose file extents are all pointing to the
same extent, btrfs backref walk can be very time consuming, long
enough to trigger softlock.
Unfortunately, btrfs send is one of the caller of such backref walk
under an O(n) loop, making the total time complexity to O(n^3) or
more.
And even worse, btrfs send will allocate memory in such loop, to
trigger OOM on system with small memory(<4G).
This test case will check if btrfs send will cause these problems.
Jan Tulak [Thu, 14 Jul 2016 12:43:34 +0000 (14:43 +0200)]
xfs: Add mkfs input validation tests
mkfs.xfs does not do a very good job of input validation. This test
is designed to exercise the input validation and test good/bad
combinations of options being set. It will not pass on an old
mkfs.xfs binary - it is designed to be the test case for an input
validation cleanup (merged in spring/summer 2016).
Signed-off-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Jan Tulak <jtulak@redhat.com> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Jan Tulak [Thu, 14 Jul 2016 12:43:30 +0000 (14:43 +0200)]
check: fix extended names handling
The code handling "./check foo/123", when the real test is
"foo/123-bar-baz" was moved to the earliest position, so everything
working with the test name or path will know the full name. Thus, no
"123" and "123-bar-baz" mix is possible.
An example of this issue is $testname.notrun file. When _notrun
"foo" was run during ./check foo/$name command, it created
$name.notrun. But few lines later, it wanted $fullname.notrun. So if
you did ./check foo/999, but the file was 999-bar-baz, then you got
comparing outputs (and most likely a fail) instead of a skip.
Another example of this mix is in xfstests output:
./check xfs/999
[...]
xfs/999 0s ... 0s
Ran: xfs/999-test-case
Jan Tulak [Mon, 11 Jul 2016 09:26:06 +0000 (11:26 +0200)]
build: Fix installation for extended names
xfstests supports extended test names like 314-foo-bar, but
installation of these tests was skipped (not matching a regexp). So
this patch fixes the makefiles in tests/*/
The include/buildrules change was written by Dave Chinner.
common/rc: avoid mkfs option conflicts in _scratch_mkfs_xfs_supported
In recent mkfs.xfs updates in xfsprogs, commit 9090e187bc3e ("mkfs:
add respecification detection to generic parsing") added
re-specification detection to "-m" option, it causes several tests
_notrun if MKFS_OPTIONS has the same options as those being tested
in _scratch_mkfs_xfs_supported(), because they're specified multiple
times.
Fix it by creating XFS again without MKFS_OPTIONS in
_scratch_mkfs_xfs_supported(), in case there's conflict between
MKFS_OPTIONS and mkfs_opts, like what we do in _scratch_mkfs_xfs().
Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
generic/067 mounts $SCRATCH_DEV directly in the test, assuming it's
a block device. generic/299 and generic/300 query the size of
$SCRATCH_DEV by running 'blockdev --getsz $SCRATCH_DEV'.
So add the check to make sure $SCRATCH_DEV is a real block device in
these tests.
Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Jan Tulak [Thu, 14 Jul 2016 12:43:33 +0000 (14:43 +0200)]
xfs/096: run test only if mkfs.xfs accepts invalid inputs
Because we recently changed how mkfs behaves when it gets
incorrect/invalid values, add a feature check to run this test only
on older binaries, which accepts invalid sunit values.
Filipe Manana [Sat, 2 Jul 2016 12:33:28 +0000 (13:33 +0100)]
btrfs: invalid rmdir issued by send operation
Test that an incremental send operation does not prematurely issues
rmdir operations under a particular scenario (the rmdir operation is
sent before the target directory is empty).
This issue is fixed by the following patch for the linux kernel:
Filipe Manana [Sat, 2 Jul 2016 12:32:08 +0000 (13:32 +0100)]
btrfs: incremental send after moving directories around
Test that an incremental send operation works after doing radical
changes in the directory hierarchy that involve switching the inode
that directory entries point to.
This test exercises scenarios used to fail in btrfs and are fixed by
the following patches for the linux kernel:
"Btrfs: send, fix failure to move directories with the same name around"
"Btrfs: incremental send, fix invalid paths for rename operations"
Eric Whitney [Thu, 7 Jul 2016 20:12:02 +0000 (16:12 -0400)]
ext4/021: add _require_metadata_journaling
An ext4 file system can be created without a journal, but ext4/021
presumes it will contain one. Make that requirement explicit to
avoid unnecessary failures when testing "nojournal" file systems.
Zorro Lang [Tue, 5 Jul 2016 09:30:24 +0000 (17:30 +0800)]
xfs: configurable behavior on errors at unmount time
XFS used to retry forever on non-critical errors, and unmount could
hang in such case. Commit e6b3bb78962e ("xfs: add "fail at unmount"
error handling configuration") introduced an error configuration
option in sysfs(fail_at_unmount) and made this behavior
configurable.
Now test this "fail_at_unmount" behavior to make sure XFS doesn't
retry forever on error at unmount time, if configured so. Also
introduced new helpers to require/set/get sysfs attributes.
By default, _dmerror_load_*_table() suspends the dm device with
"--nolockfs" option. Callers have to feed two arguments to these
functions to change the behavior, with the second being 1, but the
first argument is not used at all, which doesn't make sense.
Fix it by checking if the first argument is "lockfs" and removing
"--nolockfs" option if so, or passing all options to dmsetup.
The test program src/test-nextquota.c relies on atoi() to convert a
string to an *unsigned* int. If the string represents an integer
which is greater than INT_MAX, it is undefined how atoi(3) works,
and it turns out that:
Anand Jain [Thu, 23 Jun 2016 13:28:13 +0000 (21:28 +0800)]
btrfs: add functions to get and put a device for replace target
For the replace tests we need a device as a spare device,
here functions _spare_dev_get() and _spare_dev_put()
will get it from the SCRATCH_DEV_POOL_SAVED, which is set
when _scratch_dev_pool_get() is called, and is based on how
many has already been assigned to SCRATCH_DEV_POOL.
usage:
_scratch_dev_pool_get 3
_spare_dev_get
SPARE_DEV will have a device set which can be
used as the replace target device.
_spare_dev_put
_scratch_dev_pool_put
_spare_dev_get() will pick the next device after SCRATCH_DEV_POOL
devices, from the SCRATCH_DEV_POOL_SAVED, and assigns it to
SPARE_DEV. _spare_dev_put() will set to SPARE_DEV to null.
Brian Foster [Thu, 30 Jun 2016 12:49:34 +0000 (08:49 -0400)]
xfs: test for post umount readahead completion panic
XFS has a bug where directory readahead completions can occur after
unmount. This can lead to a crash or panic because metadata read
verification attempts to access core XFS data structures (e.g., the
log) after they have been freed and certain pointers have been
reset.
Add a test that triggers directory readahead, delays the readahead
I/O and immediately unmounts the filesystem. This test is part of
the dangerous group as it will cause kernels affected by the bug to
crash.
[eguan replaced touch with echo to speedup file creation]
Brian Foster [Thu, 30 Jun 2016 12:49:33 +0000 (08:49 -0400)]
common: support dm-delay to introduce I/O delays
Add some infrastructure in common/dmdelay to support use of the
dm-delay device-mapper module within tests. This is effectively
copied from the existing infrastructure in common/dmflakey. This
provides the ability to delay I/O. It only supports delaying read
I/O as that is all that is required at this point in time.
This test has been removed from the auto group because it fails without
an expected fix. Remove it from the quick group as well, as the quick
group should be a subset of the auto group.
Theodore Ts'o [Wed, 29 Jun 2016 13:20:58 +0000 (09:20 -0400)]
generic/082: rename _filter_project_quota to a avoid function name conflict
Commit 8469a8c1: "xfs/133-4: filter redundant projid 0 quota report
info out" added _filter_project_quota to common/filter, and this
conflicted with a _filter_project_quota function in generic/082. So
rename the function in generic/082 to avoid the conflict.
Theodore Ts'o [Wed, 29 Jun 2016 01:32:55 +0000 (21:32 -0400)]
common/rc: ext4 doesn't support O_DIRECT with encryption
Teach _require_odirect to skip the O_DIRECT tests if the ext4 mount
option "test_dummy_encryption" is enabled, since O_DIRECT doesen't
make sense when file system level encryption is enabled, and several
tests which use O_DIRECT --- ext4/301, ext4/304, generic/250 and
generic/252 --- fail when encryption is enabled.
Eryu Guan [Thu, 23 Jun 2016 06:09:47 +0000 (14:09 +0800)]
ext4/271: _notrun if there are journal related mount options
ext4/271 runs in no journal mode (-onoload), so running test with
journal related mount options makes no sense, and test fails after
kernel commit 1e381f60dad9 ("ext4: do not allow journal_opts for fs
w/o journal"), journal related mount options are not allowed in no
journal mode. So _notrun if there're journal related mount options.
Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Some tests require that there's no certain mount option in
MKFS_OPTIONS, so introduce a new helper
_exclude_scratch_mount_option() to do the check on $MOUNT_OPTIONS.
Also convert generic/192 and xfs/134 to use this helper.
Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
btrfs fi sync /mnt, now does not output anything for success,
so the 006.out should be updated.
This change in btrfs-progs was introduced in the commit b005ca024990569d2de459485682158633937928
btrfs-progs: fi sync: make it silent by default
which was integrated at btrfs-progs version v4.5.2
Eryu Guan [Fri, 17 Jun 2016 10:54:28 +0000 (18:54 +0800)]
dmthin: express low_water in cluster_size not sector size
I noticed that thin-pool sent out "reached low water mark for data
device" event even before thin-pool device was mounted in
generic/347, this is because low water mark was set to a too high
value.
According to kernel thin-provisioning.txt documentation, low water
mark should be expressed in blocks of $cluster_size, not in sectors.
"$low_water_mark is expressed in blocks of size $data_block_size."
Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Eryu Guan [Tue, 21 Jun 2016 10:56:37 +0000 (18:56 +0800)]
xfs/186: run test on expected XFS configuration
Usually xfs/186 _notrun on crc enabled XFS because of
_require_attr_v1, since v2 attr format is always enabled on v5 XFS.
But when testing on 512B block size XFS, i.e. MKFS_OPTIONS="-m crc=0
-b size=512", test fails. This is because crc enabled XFS was
created in the end, not 512B block size XFS with crc disabled, and
that's not what we want to test.
The reason why _scratch_mkfs_xfs creates a different XFS than
expected is that, it may ignore $MKFS_OPTIONS if mkfs fails due to
conflicts between $MKFS_OPTIONS and the provided mkfs options.
In the case of xfs/186, "-b size=512" conflicts with "-i size=512",
and the first mkfs fails, then it ends up with a 4k block size XFS
with crc enabled (the default config).
Fix it by checking crc enablement status and attr version in the
test, to make sure it's testing on expected XFS.
Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
Eric Sandeen [Fri, 17 Jun 2016 17:54:43 +0000 (12:54 -0500)]
xfs/186: fix test for crc=0, ftype=1
Test 186 won't run when crcs are enabled, because
attrv1 is not allowed with crc=1.
However, ftype is still allowed with crc=0, so
this creates v3 directories, and xfs_db prints
them as such (along with the filetype), which
breaks the test output.
We can filter & replace to fix up the test in
this case.
Brian Foster [Thu, 16 Jun 2016 12:28:48 +0000 (08:28 -0400)]
fstests: support check for uuidgen utility
A recent test uses the uuidgen utility to generate UUID-based
filenames, but this package is not necessarily installed as part of
the core packages of every distro.
As such, add the UUIDGEN_PROG environment variable to the common
configuration and update the test to require the existence of
uuidgen to run.
Wang Xiaoguang [Wed, 15 Jun 2016 06:37:10 +0000 (14:37 +0800)]
ext4: regression test for fsync transaction ids initialization
Commit 688f869 fixed this bug:
ext4: Initialize fsync transaction ids in ext4_new_inode()
We manually modify jbd2 journal_superblock_s.s_sequence to be a very
large number, which will greatly reduce the time taken to trigger
this bug, though it seems some too hacked.
Lu Fengqi [Tue, 14 Jun 2016 01:42:39 +0000 (09:42 +0800)]
btrfs: check qgroup on extent de-reference
Test if qgroup can handle extent de-reference during reallocation.
"extent de-reference" means that reducing an extent's reference
count or freeing an extent.
Although current qgroup can handle it, we still need to prevent any
regression which may break current qgroup.
Darrick J. Wong [Tue, 31 May 2016 16:43:52 +0000 (09:43 -0700)]
xfs/122: don't break on old xfsprogs
If we're running against a old version of xfsprogs that lacks some
of the structures that the golden output knows about, copy the
structure size definition from the golden output to the program
output. This way we can check for structure size mutations on old
xfsprogs without generating false error reports for structs that
don't exist in the old release.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <eguan@redhat.com>
Darrick J. Wong [Fri, 27 May 2016 03:28:51 +0000 (20:28 -0700)]
xfs: map multiple bmbt records to a single rmapbt record
Make sure that we can handle multiple bmbt records mapping to a
single rmapbt record. This can happen if you fallocate more than
2^21 contiguous blocks to a file.
(Also add some helpers that can create huge devices with some
dm-zero and dm-snapshot fakery.)
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <eguan@redhat.com>
Darrick J. Wong [Thu, 26 May 2016 05:57:36 +0000 (22:57 -0700)]
reflink: avoid reflink on swap files
Since none of the current filesystems support reflinked swap files,
make sure that we prohibit reflinking of swapfiles and swapon of
reflinked files.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Cc: Christoph Hellwig <hch@lst.de> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <eguan@redhat.com>
Darrick J. Wong [Thu, 26 May 2016 05:57:29 +0000 (22:57 -0700)]
xfs: check accounting during refcountbt expansion
Ensure that refcountbt allocations during truncate operations come
from the per-AG reservation and are not charged to the transaction.
Reported-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Eryu Guan <eguan@redhat.com>