Re: [POC/RFC PATCH] overlayfs: constant inode numbers
From: Amir Goldstein
Date: Mon Dec 05 2016 - 09:05:50 EST
On Tue, Nov 29, 2016 at 11:49 PM, Miklos Szeredi <miklos@xxxxxxxxxx> wrote:
> On Tue, Nov 29, 2016 at 1:03 PM, Amir Goldstein <amir73il@xxxxxxxxx> wrote:
>> On Tue, Nov 29, 2016 at 1:34 PM, Amir Goldstein <amir73il@xxxxxxxxx> wrote:
...
>>> Not sure that I understand what you are suggesting, but I would be happy
>>> to make the needed adjustments to redirect_fh per your request if you clarify
>>> what you mean. From what I understand:
>>>
>>> 1. If redirect_dir=fh (and supported by layers), store lower handle
>>> on dir copy up in new xattr OVL_XATTR_FH
>>> 2. In ovl_rename(), set OVL_XATTR_REDIRECT regardless of OVL_XATTR_FH
>>> 3. In ovl_lookup_single(), carry both d.redirct and d.redirect_fh to next layer
>>> 4. In ovl_lookup_layer(), lookup by handle first then by path
>>>
Miklos,
FYI, this part of the work is done and pushed to #redirect_fh branch
on my github.
It is tested on same and not same fs and it is used as the base of
current #ovl_snapshot
branch and tested along with it.
>>> not sure what you meant by "... and provide a good way to get the stable ino."
>>> Either I managed to confuse you, or I am missing something?
>
> I meant that we can unify OVL_XATTR_INO with "redirect/fh"
> functionality and get something good out of it.
>
>> Perhaps you meant for non-dir:
>>
>> 5. If redirect_dir=fh, *propagate* lowest-handle on non-dir copy up
>> 6. In ovl_lookup() of non-dir, decode lowest-handle to set oe->ino
>
> Yes.
>
> OVL_XATTR_FH would be safe to ignore, so this is back and forward
> compatible.. And the cost is probably not prohitive, since copy ups
> should be relatively rare.
>
I am still trying to figure out the best way of "getting something good"
out of this merger, because changing ovl_getattr() to use redirect_fh
instead of stored ino is not such a big win.
More thought are welcome.
Amir.