All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Bader <stefan.bader@canonical.com>
To: Mikhail Afanasyev <mikhail.afanasyev@tri.global>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Miklos Szeredi <mszeredi@redhat.com>
Cc: stable@vger.kernel.org
Subject: Re: ovl: renames in overlayfs over tmpfs returns ESTALE in 4.4
Date: Wed, 14 Sep 2016 11:41:23 +0200	[thread overview]
Message-ID: <9e72a729-03b3-e92f-4f86-8f80a513d876@canonical.com> (raw)
In-Reply-To: <6ac370bf-3537-0c3e-97d5-f67ece5c7bf2@tri.global>

[-- Attachment #1: Type: text/plain, Size: 2584 bytes --]

On 13.09.2016 19:48, Mikhail Afanasyev wrote:
> Hello,
> 
> I believe the  4.4.y kernel has broken overlayfs: removing the file which is
> present in lower layer, then renaming a file from upper layer to have the same
> name fails with ESTALE. This pattern is used quite often, for example by
> 'depmod' and 'apt-get update'. The bug only seems to happen when some of the
> underlying directories are on tmpfs.

This was a regression related to compat code which is only in the Ubuntu kernels
and will be fixed in the next update. See:

http://bugs.launchpad.net/bugs/1618572

-Stefan

> 
> The test script (below) works fine on Ubuntu kernel 4.4.0-34-generic or earlier,
> and it fails in Ubuntu kernel 4.4.0-36-generic. This corresponds to Linux 4.4.16.
> 
> The error is:
> mv: cannot move 'ovf/file.new' to 'ovf/file': Stale file handle
> 
> While I have not performed the full bisect, there were only 3 patches touching
> 'fs/overlayfs' which went into the tree between the two revisions:
> https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial/log/?id=b275624b3b4303d21eefd78c5b3bf04c34267e4e
> 
> 
> ovl: verify upper dentry before unlink and rename
> https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial/commit/?id=a4452ab01db4780937d4e19861d3b841c373c3b5
> 
> 
> ovl: verify upper dentry in ovl_remove_and_whiteout()
> https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial/commit/?id=90089541cf2982cff69724c34f7ae9a088df9c2f
> 
> 
> ovl: Copy up underlying inode's ->i_mode to overlay inode
> https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/xenial/commit/?id=8326f3ef42b56d97d1060adff6d4ab35818e3b9a
> 
> 
> Of them, the first two add a return with ESTALE error and would be the prime
> suspects.
> I also understand that 4.4.16 is a somewhat old kernel, but I believe the bug
> may still be present in the latest linux-4.4.y  -- there were no changes to the
> relevant file (fs/overlayfs/dir.c) since these patches.
> 
> 
> 
> Mikhail Afanasyev
> 
> ~~~~~~~~ TEST SCRIPT ~~~~~~
> #!/bin/sh -ex
> mkdir -p /tmp/ovf-bug-demo
> cd /tmp/ovf-bug-demo
> 
> umount ./tmpfs/ovf || true
> umount ./tmpfs || true
> mkdir -p tmpfs
> mount -t tmpfs none tmpfs
> cd tmpfs
> 
> mkdir -p upper lower ovf work
> touch lower/file
> mount -t overlayfs none -o
> rw,noatime,lowerdir=$PWD/lower,upperdir=$PWD/upper,workdir=$PWD/work $PWD/ovf
> touch ovf/file.new
> 
> rm ovf/file
> mv ovf/file.new ovf/file
> 
> ~~~~~~~~~ END ~~~~~~~~~~~~



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

      parent reply	other threads:[~2016-09-14  9:41 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-13 17:48 ovl: renames in overlayfs over tmpfs returns ESTALE in 4.4 Mikhail Afanasyev
2016-09-13 19:59 ` Greg Kroah-Hartman
2016-09-14  9:41 ` Stefan Bader [this message]

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=9e72a729-03b3-e92f-4f86-8f80a513d876@canonical.com \
    --to=stefan.bader@canonical.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=mikhail.afanasyev@tri.global \
    --cc=mszeredi@redhat.com \
    --cc=stable@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.