overlayfs: issue with a replaced lower squashfs with export-table

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hope this is the right list for asking overlayfs <-> squashfs related issues.
Else please let me know where to ask.

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.

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?

Thanks in advance for any hints!

Fabian






[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux