From: "Theodore Ts'o" <tytso@mit.edu>
To: Jan Kara <jack@suse.cz>
Cc: linux-ext4@vger.kernel.org, Ira Weiny <ira.weiny@intel.com>
Subject: Re: [PATCH 3/3] ext4: Gracefully handle ext4_break_layouts() failure during truncate
Date: Fri, 24 May 2019 23:32:35 -0400 [thread overview]
Message-ID: <20190525033235.GB4225@mit.edu> (raw)
In-Reply-To: <20190522090317.28716-4-jack@suse.cz>
On Wed, May 22, 2019 at 11:03:17AM +0200, Jan Kara wrote:
> ext4_break_layouts() may fail e.g. due to a signal being delivered.
> Thus we need to handle its failure gracefully and not by taking the
> filesystem down. Currently ext4_break_layouts() failure is rare but it
> may become more common once RDMA uses layout leases for handling
> long-term page pins for DAX mappings.
>
> To handle the failure we need to move ext4_break_layouts() earlier
> during setattr handling before we do hard to undo changes such as
> modifying inode size. To be able to do that we also have to move some
> other checks which are better done without holding i_mmap_sem earlier.
>
> Reported-and-tested-by: Ira Weiny <ira.weiny@intel.com>
> Reviewed-by: Ira Weiny <ira.weiny@intel.com>
> Signed-off-by: Jan Kara <jack@suse.cz>
When doing some final testing before sending a pull request to Linus,
I found a regression. After bisecting, this patch fails reliably
under gce-xfstests:
TESTRUNID: tytso-20190524230226
KERNEL: kernel 5.1.0-rc3-xfstests-00039-g079f9927c7bf #1016 SMP Fri May 24 23:00:47 EDT 2019 x86_64
CMDLINE: -c 4k generic/092
CPUS: 2
MEM: 7680
ext4/4k: 1 tests, 1 failures, 2 seconds
generic/092 Failed 1s
Totals: 1 tests, 0 skipped, 1 failures, 0 errors, 1s
FSTESTPRJ: gce-xfstests
FSTESTVER: fio fio-3.2 (Fri, 3 Nov 2017 15:23:49 -0600)
FSTESTVER: quota 62661bd (Tue, 2 Apr 2019 17:04:37 +0200)
FSTESTVER: xfsprogs v5.0.0 (Fri, 3 May 2019 12:14:36 -0500)
FSTESTVER: xfstests-bld 9582562 (Sun, 12 May 2019 00:38:51 -0400)
FSTESTVER: xfstests linux-v3.8-2390-g64233614 (Thu, 16 May 2019 00:12:52 -0400)
FSTESTCFG: 4k
FSTESTSET: generic/092
FSTESTOPT: aex
GCE ID: 343197219467628221
generic/092 0s ... [23:05:07] [23:05:08]- output mismatch (see /results/ext4/results-4k/generic/092
.out.bad)
% diff -u /tmp/results-tytso-20190524230226/ext4/results-4k/generic/092.out.bad /usr/projects/xfstests-bld/build-64/xfstests-dev/tests/generic/092.out
--- /tmp/results-tytso-20190524230226/ext4/results-4k/generic/092.out.bad 2019-05-24 23:05:08.000000000 -0400
+++ /usr/projects/xfstests-bld/build-64/xfstests-dev/tests/generic/092.out 2018-02-13 23:37:20.330097382 -0500
@@ -2,6 +2,5 @@
wrote 5242880/5242880 bytes at offset 0
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
0: [0..10239]: data
-1: [10240..20479]: unwritten
0: [0..10239]: data
1: [10240..20479]: unwritten
Dropping this patch makes the test failure go away. So I'm going to
drop it for now. Jan, can you take a look? Thanks!!
- Ted
next prev parent reply other threads:[~2019-05-25 3:32 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-22 9:03 [PATCH 0/3 v2] ext4: Fix issues in ext4 truncate handling Jan Kara
2019-05-22 9:03 ` [PATCH 1/3] ext4: Wait for outstanding dio during truncate in nojournal mode Jan Kara
2019-05-24 3:46 ` Theodore Ts'o
2019-05-22 9:03 ` [PATCH 2/3] ext4: Do not delete unlinked inode from orphan list on failed truncate Jan Kara
2019-05-24 3:47 ` Theodore Ts'o
2019-05-22 9:03 ` [PATCH 3/3] ext4: Gracefully handle ext4_break_layouts() failure during truncate Jan Kara
2019-05-24 4:18 ` Theodore Ts'o
2019-05-24 8:13 ` Jan Kara
2019-05-25 3:32 ` Theodore Ts'o [this message]
2019-05-27 14:53 ` Jan Kara
-- strict thread matches above, loose matches on Subject: below --
2019-05-21 7:43 [PATCH 0/3] ext4: Fix issues in ext4 truncate handling Jan Kara
2019-05-21 7:43 ` [PATCH 3/3] ext4: Gracefully handle ext4_break_layouts() failure during truncate Jan Kara
2019-05-21 18:27 ` Ira Weiny
2019-05-22 8:57 ` Jan Kara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190525033235.GB4225@mit.edu \
--to=tytso@mit.edu \
--cc=ira.weiny@intel.com \
--cc=jack@suse.cz \
--cc=linux-ext4@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).