Re: [RFC 1/1] shiftfs: uid/gid shifting bind mount

From: Vivek Goyal
Date: Mon Feb 20 2017 - 14:26:50 EST


On Sat, Feb 18, 2017 at 07:24:38PM -0800, James Bottomley wrote:

[..]
> > > Yes, this is a known characteristic of stacked filesystems. Is
> > > there some magic I don't know about that would make it easier to
> > > reflect hard links as aliases?
> >
> > I think overlayfs had the same issue in the beginning and miklos
> > fixed it.
> >
> > commit 51f7e52dc943468c6929fa0a82d4afac3c8e9636
> > Author: Miklos Szeredi <mszeredi@xxxxxxxxxx>
> > Date: Fri Jul 29 12:05:24 2016 +0200
> >
> > ovl: share inode for hard link
>
> That's rather complex, but the principle is simple: use the inode hash
> for all upper inodes that may have aliases. Aliasable means the
> underlying inode isn't a directory and has i_nlink > 1, so all I have
> to do is perform a lookup through the hash if the underlying is
> aliasable, invalidate the dentry in d_revalidate if the aliasing
> conditions to the underlying change and manually handle hard links and
> it should all work.
>
> Like this?

Sounds reasonable to me. I did basic testing and this seems to work for me.

In general, I am having random crashes. I just get following on serial
console

------[Cut Here]----------

And nothing after that.

Still trying to narrow down.

Vivek