mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: sedat.dilek@gmail.com
Cc: dhowells@redhat.com, "J. R. Okajima" <hooanon05g@gmail.com>,
	Miklos Szeredi <miklos@szeredi.hu>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Christoph Hellwig <hch@infradead.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	apw@canonical.com, Felix Fietkau <nbd@openwrt.org>,
	neilb@suse.de, jordipujolp@gmail.com, ezk@fsl.cs.sunysb.edu,
	mszeredi@suse.cz
Subject: Re: Unionmount and overlayfs testsuite
Date: Tue, 03 Jun 2014 10:00:56 +0100	[thread overview]
Message-ID: <15839.1401786056@warthog.procyon.org.uk> (raw)
In-Reply-To: <CA+icZUV5P=fVwe_MJJHixwBOBoj7HoKSFuySLdS6AU5L++S=4g@mail.gmail.com>

Sedat Dilek <sedat.dilek@gmail.com> wrote:

> [ Re-Tested with 3.15.0-rc8-1-iniza-lockdep ]
> 
> Running the impermissible test on OverlayFS with TERMSLASH=1 is
> successful here

That's not very surprising.  utimensat() doesn't even get out of pathwalk if
the filename has a terminal slash and the fs_op macro correctly overrides the
expected error code in this case.

> (TERMSLASH=0 still fails):

It's possible that the test is wrong.  utimes is icky, at least on unionmount,
because the copy up has to be done before we call notify_change() - but
notify_change() can still reject the operation (in which case we didn't want
to copy up at all).  The problem is that notify_change() has i_mutex.

Ideally, we'd do copy-up inside notify_change() - but we can't do that in
unionmount.  I imagine you can do that in overlayfs.

> # LC_ALL=C TEST_OVERLAYFS=1 TERMSLASH=1 ./run.sh
> 
> [ NOTE-1: I still see the reported call-trace which you Dave see as a
> problem in OverlayFS. ]

There should be zero lockdep complaints.  It may be a real locking problem or
it may just be a missing nesting annotation.

One problem I had with unionmounts that I don't think applies to overlayfs is
that i_{,mdir_}mutex on inodes on the upper (union) layer and the lower layers
may come from the same superblock and thus have the same lockdep class keys
(which are per struct file_system_type).  This means that lockdep thinks
they're conflicting - when actually they are not.  What I did was to give
i_{,dir_}mutex in the upper layer different lockdep classes.

The reason this works for unionmounts is that there unionmounting is done by
the VFS and the upper/glue layer is an ordinary superblock (tmpfs, ext2, ...)
and I get to meddle with the lockdep classes of the upper superblock during
mount before any inodes exist.

I don't think this would work for overlayfs for two reasons: (1) the top layer
is an overlayfs superblock and would have different lockdep classes anyway and
(2) you cannot change the lockdep class once inodes exist in the filesystem -
and overlayfs requires both the upper and lower layers to exist prior to the
glue layer being mounted.

My suspicion is that overlayfs is doing stuff to the lower layer whilst
holding a lock on the upper layer or vice versa.

> [ NOTE-2: The call-trace I have seen once (TERMSLASH=0). ]

Do you know for which operation?

David

  parent reply	other threads:[~2014-06-03  9:01 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-23  9:43 [PATCH 00/13] overlay filesystem v22 Miklos Szeredi
2014-05-23  9:43 ` [PATCH 01/13] vfs: add i_op->dentry_open() Miklos Szeredi
2014-05-23  9:43 ` [PATCH 02/13] vfs: export do_splice_direct() to modules Miklos Szeredi
2014-05-23  9:43 ` [PATCH 03/13] vfs: export __inode_permission() " Miklos Szeredi
2014-05-23  9:43 ` [PATCH 04/13] vfs: introduce clone_private_mount() Miklos Szeredi
2014-05-23  9:43 ` [PATCH 05/13] vfs: export check_sticky() Miklos Szeredi
2014-05-23  9:43 ` [PATCH 06/13] vfs: add whiteout support Miklos Szeredi
2014-05-24  8:29   ` Tetsuo Handa
2014-05-23  9:43 ` [PATCH 07/13] vfs: add RENAME_WHITEOUT Miklos Szeredi
2014-05-24  8:02   ` Azat Khuzhin
2014-05-23  9:43 ` [PATCH 08/13] overlay filesystem Miklos Szeredi
2014-05-23  9:43 ` [PATCH 09/13] overlayfs: add statfs support Miklos Szeredi
2014-05-23  9:43 ` [PATCH 10/13] overlayfs: implement show_options Miklos Szeredi
2014-05-23  9:43 ` [PATCH 11/13] overlay: overlay filesystem documentation Miklos Szeredi
2014-05-23  9:43 ` [PATCH 12/13] fs: limit filesystem stacking depth Miklos Szeredi
2014-05-23  9:43 ` [PATCH 13/13] vfs: dcache: Export d_ancestor to modules Miklos Szeredi
2014-05-26  1:56 ` [PATCH 00/13] overlay filesystem v22 J. R. Okajima
2014-05-28 16:06   ` Miklos Szeredi
2014-05-29 10:26   ` David Howells
2014-05-29 11:26     ` Miklos Szeredi
2014-05-29 10:54 ` Kernel errors with " David Howells
2014-05-29 11:16 ` David Howells
2014-05-29 11:28 ` David Howells
2014-05-29 12:07   ` Miklos Szeredi
2014-05-29 16:06     ` Miklos Szeredi
2014-05-29 16:10       ` Sedat Dilek
2014-05-29 16:23     ` More kernel " David Howells
2014-05-29 16:36       ` Miklos Szeredi
2014-05-29 16:44       ` David Howells
2014-05-29 16:48 ` Unionmount and overlayfs testsuite David Howells
2014-05-29 17:11   ` Sedat Dilek
2014-05-29 17:15   ` David Howells
2014-05-29 17:19     ` Sedat Dilek
2014-05-29 17:24     ` David Howells
2014-05-29 17:36       ` Sedat Dilek
2014-05-29 17:41       ` David Howells
2014-05-29 17:44         ` Sedat Dilek
2014-05-29 18:22         ` David Howells
2014-05-29 18:44           ` Sedat Dilek
2014-05-29 18:53             ` Sedat Dilek
2014-05-29 19:20             ` David Howells
2014-05-29 19:24               ` Sedat Dilek
2014-05-29 19:25           ` David Howells
2014-05-29 19:28             ` Sedat Dilek
2014-05-29 19:35           ` David Howells
2014-05-29 20:00             ` Sedat Dilek
2014-05-29 20:59             ` David Howells
2014-05-30  4:15               ` Sedat Dilek
2014-05-30  4:29                 ` Sedat Dilek
2014-05-30  7:54               ` David Howells
2014-05-29 17:35     ` Sedat Dilek
2014-05-29 17:50     ` David Howells
2014-05-29 17:58       ` Sedat Dilek
2014-05-29 18:23       ` Dave Jones
2014-05-29 18:27       ` David Howells
2014-05-29 17:17   ` David Howells
2014-05-29 23:21   ` Dave Chinner
2014-05-30  3:35   ` J. R. Okajima
2014-05-30  4:44     ` J. R. Okajima
2014-05-30  8:49   ` David Howells
2014-05-30  9:15     ` J. R. Okajima
2014-06-03  8:08     ` Sedat Dilek
2014-06-03  9:00     ` David Howells [this message]
2014-06-03  9:12       ` Miklos Szeredi
2014-06-03  9:18       ` Sedat Dilek
2014-06-03  9:26         ` Sedat Dilek
2014-06-03  9:39           ` Sedat Dilek
2014-06-03  9:42           ` Miklos Szeredi
2014-06-03 10:15             ` Sedat Dilek
2014-06-03 10:21             ` Sedat Dilek
2014-06-03 10:55               ` Sedat Dilek
2014-06-03 10:33           ` David Howells
2014-06-03 13:21             ` Miklos Szeredi
2014-06-03 14:26               ` Sedat Dilek
2014-06-03 15:30             ` David Howells
2014-06-03 15:53               ` Miklos Szeredi
2014-06-05 22:16               ` David Howells
2014-06-24 16:46               ` Overlayfs rename bug David Howells
2014-07-08  9:29                 ` Miklos Szeredi
2014-07-08  9:56                 ` David Howells
2014-07-09 14:14                   ` Miklos Szeredi
2014-05-30  9:14   ` Unionmount and overlayfs testsuite David Howells
2014-05-29 17:29 ` Kernel errors with overlay filesystem v22 David Howells

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=15839.1401786056@warthog.procyon.org.uk \
    --to=dhowells@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=apw@canonical.com \
    --cc=ezk@fsl.cs.sunysb.edu \
    --cc=hch@infradead.org \
    --cc=hooanon05g@gmail.com \
    --cc=jordipujolp@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=mszeredi@suse.cz \
    --cc=nbd@openwrt.org \
    --cc=neilb@suse.de \
    --cc=sedat.dilek@gmail.com \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    /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

all inboxes | Powered by JetHome®