All of lore.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro@ZenIV.linux.org.uk>
To: Dave Chinner <david@fromorbit.com>
Cc: Dave Jones <davej@codemonkey.org.uk>,
	"Darrick J. Wong" <darrick.wong@oracle.com>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	linux-xfs@vger.kernel.org
Subject: Re: iov_iter_pipe warning.
Date: Mon, 11 Sep 2017 00:07:23 +0100	[thread overview]
Message-ID: <20170910230723.GG5426@ZenIV.linux.org.uk> (raw)
In-Reply-To: <20170910220814.GN17782@dastard>

On Mon, Sep 11, 2017 at 08:08:14AM +1000, Dave Chinner wrote:
> On Sun, Sep 10, 2017 at 10:19:07PM +0100, Al Viro wrote:
> > On Mon, Sep 11, 2017 at 07:11:10AM +1000, Dave Chinner wrote:
> > > On Sun, Sep 10, 2017 at 03:57:21AM +0100, Al Viro wrote:
> > > > On Sat, Sep 09, 2017 at 09:07:56PM -0400, Dave Jones wrote:
> > > > 
> > > > > With this in place, I'm still seeing -EBUSY from invalidate_inode_pages2_range
> > > > > which doesn't end well...
> > > > 
> > > > Different issue, and I'm not sure why that WARN_ON() is there in the
> > > > first place.  Note that in a similar situation generic_file_direct_write()
> > > > simply buggers off and lets the caller do buffered write...
> > > 
> > > XFS does not fall back to buffered IO when direct IO fails.  A
> > > direct IO failure is indicative of a problem that needs to be fixed,
> > > not use a "let's hope we can hide this" fallback path. Especially in
> > > this case - EBUSY usually comes from the app is doing something we
> > > /know/ is dangerous and it's occurrence to completely timing
> > > dependent - if the timing is slightly different, we miss detection
> > > and that can lead to silent data corruption.
> > 
> > In this case app is a fuzzer, which is bloody well supposed to poke
> > into all kinds of odd usage patterns, though...
> 
> Yup, and we have quite a few tests in xfstests that specifically
> exercise this same dark corner. We filter out these warnings from
> the xfstests that exercise this case, though, because we know they
> are going to be emitted and so aren't a sign of test failures...

BTW, another problem I see there is that iomap_dio_actor() should *NOT*
assume that do-while loop in there will always manage to shove 'length'
bytes out in case of success.  That is simply not true for pipe-backed
destination.  And I'm not sure if outright failures halfway through
are handled correctly.  What does it need a copy of dio->submit.iter for,
anyway?  Why not work with dio->submit.iter directly?

  reply	other threads:[~2017-09-10 23:07 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-21 20:59 iov_iter_pipe warning Dave Jones
2017-04-05 22:02 ` Dave Jones
2017-04-10 19:28 ` Al Viro
2017-04-10 19:42   ` Dave Jones
2017-04-10 19:57     ` Al Viro
2017-04-10 23:48       ` Dave Jones
2017-04-11  0:22         ` Al Viro
2017-04-11  3:05           ` Dave Jones
2017-04-11  3:28             ` Al Viro
2017-04-11 20:53               ` Dave Jones
2017-04-11 21:12                 ` Al Viro
2017-04-11 22:25                   ` Dave Jones
2017-04-11 23:28                     ` Al Viro
2017-04-11 23:34                       ` Dave Jones
2017-04-11 23:48                         ` Al Viro
2017-04-11 23:45                       ` Dave Jones
2017-04-11 23:51                         ` Al Viro
2017-04-11 23:56                           ` Al Viro
2017-04-12  0:06                             ` Dave Jones
2017-04-12  0:17                               ` Al Viro
2017-04-12  0:58                                 ` Dave Jones
2017-04-12  1:15                                   ` Al Viro
2017-04-12  2:29                                     ` Dave Jones
2017-04-12  2:58                                       ` Al Viro
2017-04-12 14:35                                         ` Dave Jones
2017-04-12 15:26                                           ` Al Viro
2017-04-12 16:27                                             ` Dave Jones
2017-04-12 17:07                                               ` Al Viro
2017-04-12 19:03                                                 ` Dave Jones
2017-04-21 17:54                                                   ` Al Viro
2017-04-27  4:19                                                     ` Dave Jones
2017-04-27 16:34                                                       ` Dave Jones
2017-04-27 17:39                                                         ` Al Viro
2017-04-28 15:29                                                     ` Dave Jones
2017-04-28 16:43                                                       ` Al Viro
2017-04-28 16:50                                                         ` Dave Jones
2017-04-28 17:20                                                           ` Al Viro
2017-04-28 18:25                                                             ` Al Viro
2017-04-29  1:58                                                               ` Dave Jones
2017-04-29  2:47                                                                 ` Al Viro
2017-04-29 15:51                                                                   ` Dave Jones
2017-04-29 20:46                                                                     ` [git pull] vfs.git fix (Re: iov_iter_pipe warning.) Al Viro
2017-08-07 20:18                                                             ` iov_iter_pipe warning Dave Jones
2017-08-28 20:31                                                               ` Dave Jones
2017-08-29  4:25                                                                 ` Darrick J. Wong
2017-08-30 17:05                                                                   ` Dave Jones
2017-08-30 17:13                                                                     ` Darrick J. Wong
2017-08-30 17:17                                                                       ` Dave Jones
2017-09-06 20:03                                                                   ` Dave Jones
2017-09-06 23:46                                                                     ` Dave Chinner
2017-09-07  3:48                                                                       ` Dave Jones
2017-09-07  4:33                                                                         ` Al Viro
2017-09-08  1:04                                                                       ` Al Viro
2017-09-10  1:07                                                                         ` Dave Jones
2017-09-10  2:57                                                                           ` Al Viro
2017-09-10 16:07                                                                             ` Dave Jones
2017-09-10 20:05                                                                               ` Al Viro
2017-09-10 20:07                                                                                 ` Dave Jones
2017-09-10 20:33                                                                                   ` Al Viro
2017-09-10 21:11                                                                             ` Dave Chinner
2017-09-10 21:19                                                                               ` Al Viro
2017-09-10 22:08                                                                                 ` Dave Chinner
2017-09-10 23:07                                                                                   ` Al Viro [this message]
2017-09-10 23:15                                                                                     ` Al Viro
2017-09-11  0:31                                                                                     ` Dave Chinner
2017-09-11  3:32                                                                                       ` Al Viro
2017-09-11  6:44                                                                                         ` Dave Chinner
2017-09-11 20:07                                                                                           ` Al Viro
2017-09-11 20:17                                                                                             ` Al Viro
2017-09-12  6:02                                                                                             ` Dave Chinner
2017-09-12 11:13                                                                                               ` Al Viro
2017-09-11 12:07                                                                                     ` Christoph Hellwig
2017-09-11 12:51                                                                                       ` Al Viro

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=20170910230723.GG5426@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=darrick.wong@oracle.com \
    --cc=davej@codemonkey.org.uk \
    --cc=david@fromorbit.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-xfs@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.