All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabian <godi.beat@gmx.net>
To: Amir Goldstein <amir73il@gmail.com>
Cc: overlayfs <linux-unionfs@vger.kernel.org>
Subject: Re: overlayfs: issue with a replaced lower squashfs with export-table
Date: Mon, 06 Jul 2020 17:14:20 +0200	[thread overview]
Message-ID: <106271350.sqX05tTuFB@fgdesktop> (raw)
In-Reply-To: <CAOQ4uxjm7i+uO4o4470ACctsft1m18EiUpxBfCeT-Wyqf1FAYg@mail.gmail.com>

Hi Amir,

thanks for your mail and the quick reply!

Am Montag, 6. Juli 2020, 16:29:51 CEST schrieb Amir Goldstein:
> > We are seeing problems using an read-writeable overlayfs (upper) on a
> > readonly squashfs (lower). The squashfs gets an update from time to time
> > while we keep the upper overlayfs.
>
> It gets updated while the overlay is offline (not mounted) correct?

Yes. We boot into a recovery system outside the rootfs and its overlayfs,
replace the lower squashfs, and then reboot into the new system.

> > On replaced files we then see -ESTALE ("overlayfs: failed to get inode
> > (-116)") messages if the lower squashfs was created _without_ using the
> > "-no-exports" switch.
> > The -ESTALE comes from ovl_get_inode() which in turn calls
> > ovl_verify_inode() and returns on the line where the upperdentry inode
> > gets compared
> > ( if (upperdentry && ovl_inode_upper(inode) != d_inode(upperdentry)) ).
> >
> > A little debugging shows, that the upper files dentry name does not fit to
> > the dentry name of the new lower dentry as it seems to look for the inode
> > on the squashfs "export"-lookup-table which has changed as we replaced
> > the lower fs.
> >
> > Building the lower squashfs with the "-no-exports"-mksquashfs option, so
> > without the export-lookup-table, seems to work, but it might be no longer
> > exportable using nfs (which is ok and we can keep with it).
> >
> > As we didn't find any other information regarding this behaviour or anyone
> > who also had this problem before we just want to know if this is the
> > right way to use the rw overlayfs on a (replaceable) ro squashfs
> > filesystem.
> >
> > Is this a known issue? Is it really needed to disable the export feature
> > when using overlayfs on a squashfs if we later need to replace squashfs
> > during an update? Any hints we can have a look on if this should work and
> > we might have done wrong during squashfs or overlayfs creation?
>
> This sounds like an unintentional outcome of:
> 9df085f3c9a2 ovl: relax requirement for non null uuid of lower fs
>
> Which enabled nfs_export for overlay with lower squashfs.
>
> If you do not need to export overlayfs to NFS, then you can check if the
> attached patch solves your problem.

With the attached patch i'm now getting to a point where the overlayfs tries
to handle the /run-directory (a symlink). There seems to be a -ESTALE at
ovl_check_origin_fh() after the for-loop where it checks if origin was not
found ( if (!origin) ). Maybe i should debug for more details here? Please let
me know.

> If you do need to export overlayfs to NFS or to export squashfs to NFS
> for that matter, you will have a problem, because when re-creating
> squashfs (I suppose) all file handles are re-assigned randomly to new
> files, so they have no meaning in the context of NFS file handles exported
> in the old squashfs.

No, i think we currently can live without NFS support. Currently it is more
important that we can safely replace the lower squashfs.

Thanks again!
Fabian



  reply	other threads:[~2020-07-06 15:14 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-06 13:27 overlayfs: issue with a replaced lower squashfs with export-table Fabian
2020-07-06 14:29 ` Amir Goldstein
2020-07-06 15:14   ` Fabian [this message]
2020-07-06 15:33     ` Amir Goldstein
2020-07-06 16:10       ` Fabian
2020-07-06 17:14         ` Amir Goldstein
2020-07-16 13:29           ` Fabian Godehardt
2020-07-07  5:51     ` Amir Goldstein
2020-07-07 15:51       ` Vivek Goyal
2020-07-07 17:41         ` Amir Goldstein
2020-07-07 21:53           ` Vivek Goyal
2020-07-08  6:55             ` Amir Goldstein
2020-07-08  8:00               ` Miklos Szeredi
2020-07-08  8:31                 ` Amir Goldstein
2020-07-08  8:37                   ` Miklos Szeredi
2020-07-08  8:50                     ` Amir Goldstein
2020-07-08 14:23                       ` Vivek Goyal
2020-07-08 14:26                         ` Vivek Goyal
2020-07-08 17:26                           ` Amir Goldstein
2020-07-08 17:36                             ` Vivek Goyal

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=106271350.sqX05tTuFB@fgdesktop \
    --to=godi.beat@gmx.net \
    --cc=amir73il@gmail.com \
    --cc=linux-unionfs@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.