All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: "Theodore Ts'o" <tytso@mit.edu>, "Aleksa Sarai" <asarai@suse.de>,
	"Luis R. Rodriguez" <mcgrof@kernel.org>,
	"Михаил Гаврилов" <mikhail.v.gavrilov@gmail.com>,
	"Christoph Hellwig" <hch@infradead.org>,
	"Jan Blunck" <jblunck@infradead.org>,
	linux-mm@kvack.org, "Oscar Salvador" <osalvador@suse.com>,
	"Jan Kara" <jack@suse.cz>, "Hannes Reinecke" <hare@suse.de>,
	linux-xfs@vger.kernel.org
Subject: Re: kernel BUG at fs/xfs/xfs_aops.c:853! in kernel 4.13 rc6
Date: Tue, 17 Oct 2017 08:38:11 +1100	[thread overview]
Message-ID: <20171016213811.GH15067@dastard> (raw)
In-Reply-To: <877evvng1q.fsf@xmission.com>

On Mon, Oct 16, 2017 at 12:44:33PM -0500, Eric W. Biederman wrote:
> Dave Chinner <david@fromorbit.com> writes:
> > On Sun, Oct 15, 2017 at 05:14:41PM -0500, Eric W. Biederman wrote:
> >> So my suggestions for this case are two fold.
> >> 
> >> - Tweak Docker and friends to not be sloppy and hold onto extra
> >>   resources that they don't need.  That is just bad form.
> >> 
> >> - Generalize what ext4, f2fs, xfs and possibly the network filesystems
> >>   with umount_begin are doing into a general disconnect this filesystem
> >>   from it's backing store operation.
> >> 
> >>   That operation should be enough to drop the reference to the backing
> >>   device so that device mapper doesn't care.
> >
> > Define the semantics of a forced filesystem unmount are supposed to
> > be first, then decide whether an existing shutdown operation can be
> > used. It may be we just need a new flag to the existing API to
> > implement slightly different semantics (e.g to silence unnecessary
> > warnings), but at minimum I think we've need the ->unmount_begin op
> > name to change to indicate it's function, not document the calling
> > context...
> 
> Definite the expected semantics of a forced filesystem umount is the
> same process as defining the semantics of a forced filesytem shutdown.
> Look at the code and see what it does and document it.
> 
> That said, a quick skim through the umount_begin methods on network
> filesystems (the only filesystems that implement umount_begin) it
> appears they drop the network connection.  Which is pretty much the same
> as dropping the connection to the bdev.

Sure. But what do they do to incoming attempts to read from the
filesystem, or modify/write it in some way? That behaviour really
isn't defined in any way and what we need to do that so *all
filesystems behave the same way*.

As I've already pointed out, ext4 implements different shutdown
semantics to XFS even though it copied the user API to trigger
shutdowns. That's not an acceptible situation for a generic shutdown
operation....

> So I think there is good reason
> to believe these two cases can be unified.  They may not be exactly the
> same but they are close enough that the should be able to share common
> infrastructure.

You're making it sound so much simpler than it really is...

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

WARNING: multiple messages have this Message-ID (diff)
From: Dave Chinner <david@fromorbit.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: "Theodore Ts'o" <tytso@mit.edu>, "Aleksa Sarai" <asarai@suse.de>,
	"Luis R. Rodriguez" <mcgrof@kernel.org>,
	"Михаил Гаврилов" <mikhail.v.gavrilov@gmail.com>,
	"Christoph Hellwig" <hch@infradead.org>,
	"Jan Blunck" <jblunck@infradead.org>,
	linux-mm@kvack.org, "Oscar Salvador" <osalvador@suse.com>,
	"Jan Kara" <jack@suse.cz>, "Hannes Reinecke" <hare@suse.de>,
	linux-xfs@vger.kernel.org
Subject: Re: kernel BUG at fs/xfs/xfs_aops.c:853! in kernel 4.13 rc6
Date: Tue, 17 Oct 2017 08:38:11 +1100	[thread overview]
Message-ID: <20171016213811.GH15067@dastard> (raw)
In-Reply-To: <877evvng1q.fsf@xmission.com>

On Mon, Oct 16, 2017 at 12:44:33PM -0500, Eric W. Biederman wrote:
> Dave Chinner <david@fromorbit.com> writes:
> > On Sun, Oct 15, 2017 at 05:14:41PM -0500, Eric W. Biederman wrote:
> >> So my suggestions for this case are two fold.
> >> 
> >> - Tweak Docker and friends to not be sloppy and hold onto extra
> >>   resources that they don't need.  That is just bad form.
> >> 
> >> - Generalize what ext4, f2fs, xfs and possibly the network filesystems
> >>   with umount_begin are doing into a general disconnect this filesystem
> >>   from it's backing store operation.
> >> 
> >>   That operation should be enough to drop the reference to the backing
> >>   device so that device mapper doesn't care.
> >
> > Define the semantics of a forced filesystem unmount are supposed to
> > be first, then decide whether an existing shutdown operation can be
> > used. It may be we just need a new flag to the existing API to
> > implement slightly different semantics (e.g to silence unnecessary
> > warnings), but at minimum I think we've need the ->unmount_begin op
> > name to change to indicate it's function, not document the calling
> > context...
> 
> Definite the expected semantics of a forced filesystem umount is the
> same process as defining the semantics of a forced filesytem shutdown.
> Look at the code and see what it does and document it.
> 
> That said, a quick skim through the umount_begin methods on network
> filesystems (the only filesystems that implement umount_begin) it
> appears they drop the network connection.  Which is pretty much the same
> as dropping the connection to the bdev.

Sure. But what do they do to incoming attempts to read from the
filesystem, or modify/write it in some way? That behaviour really
isn't defined in any way and what we need to do that so *all
filesystems behave the same way*.

As I've already pointed out, ext4 implements different shutdown
semantics to XFS even though it copied the user API to trigger
shutdowns. That's not an acceptible situation for a generic shutdown
operation....

> So I think there is good reason
> to believe these two cases can be unified.  They may not be exactly the
> same but they are close enough that the should be able to share common
> infrastructure.

You're making it sound so much simpler than it really is...

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2017-10-16 21:38 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-03  4:22 kernel BUG at fs/xfs/xfs_aops.c:853! in kernel 4.13 rc6 Михаил Гаврилов
2017-09-03  7:43 ` Christoph Hellwig
2017-09-03  7:43   ` Christoph Hellwig
2017-09-03 14:08   ` Михаил Гаврилов
2017-09-03 14:08     ` Михаил Гаврилов
2017-09-04 12:30     ` Jan Kara
2017-09-04 12:30       ` Jan Kara
2017-10-07  8:10       ` Михаил Гаврилов
2017-10-07  8:10         ` Михаил Гаврилов
2017-10-07  9:22         ` Михаил Гаврилов
2017-10-07  9:22           ` Михаил Гаврилов
2017-10-09  0:05         ` Dave Chinner
2017-10-09  0:05           ` Dave Chinner
2017-10-09 18:31           ` Luis R. Rodriguez
2017-10-09 18:31             ` Luis R. Rodriguez
2017-10-09 19:02             ` Eric W. Biederman
2017-10-09 19:02               ` Eric W. Biederman
2017-10-15  8:53               ` Aleksa Sarai
2017-10-15  8:53                 ` Aleksa Sarai
2017-10-15 13:06                 ` Theodore Ts'o
2017-10-15 13:06                   ` Theodore Ts'o
2017-10-15 22:14                   ` Eric W. Biederman
2017-10-15 22:14                     ` Eric W. Biederman
2017-10-15 23:22                     ` Dave Chinner
2017-10-15 23:22                       ` Dave Chinner
2017-10-16 17:44                       ` Eric W. Biederman
2017-10-16 17:44                         ` Eric W. Biederman
2017-10-16 21:38                         ` Dave Chinner [this message]
2017-10-16 21:38                           ` Dave Chinner
2017-10-16  1:13                     ` Theodore Ts'o
2017-10-16  1:13                       ` Theodore Ts'o
2017-10-16 17:53                       ` Eric W. Biederman
2017-10-16 17:53                         ` Eric W. Biederman
2017-10-16 18:50                         ` Theodore Ts'o
2017-10-16 18:50                           ` Theodore Ts'o
2017-10-16 22:00                       ` Dave Chinner
2017-10-16 22:00                         ` Dave Chinner
2017-10-17  1:34                         ` Theodore Ts'o
2017-10-17  1:34                           ` Theodore Ts'o
2017-10-17  0:59                       ` Aleksa Sarai
2017-10-17  0:59                         ` Aleksa Sarai
2017-10-17  9:20                         ` Jan Kara
2017-10-17  9:20                           ` Jan Kara
2017-10-17 14:12                           ` Theodore Ts'o
2017-10-17 14:12                             ` Theodore Ts'o
2017-11-06 19:25                             ` Luis R. Rodriguez
2017-11-06 19:25                               ` Luis R. Rodriguez
2017-11-07 15:26                               ` Jan Kara
2017-11-07 15:26                                 ` Jan Kara
2017-10-09 22:28             ` Dave Chinner
2017-10-09 22:28               ` Dave Chinner
2017-10-10  7:57               ` Jan Kara
2017-10-10  7:57                 ` Jan Kara
2017-09-04  1:43   ` Dave Chinner
2017-09-04  1:43     ` Dave Chinner
2017-09-04  2:20     ` Darrick J. Wong
2017-09-04  2:20       ` Darrick J. Wong
2017-09-04 12:14       ` Jan Kara
2017-09-04 12:14         ` Jan Kara
2017-09-04 22:36         ` Dave Chinner
2017-09-04 22:36           ` Dave Chinner
2017-09-05 16:17           ` Jan Kara
2017-09-05 16:17             ` Jan Kara
2017-09-05 23:42             ` Dave Chinner
2017-09-05 23:42               ` Dave Chinner

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=20171016213811.GH15067@dastard \
    --to=david@fromorbit.com \
    --cc=asarai@suse.de \
    --cc=ebiederm@xmission.com \
    --cc=hare@suse.de \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=jblunck@infradead.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=mikhail.v.gavrilov@gmail.com \
    --cc=osalvador@suse.com \
    --cc=tytso@mit.edu \
    /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.