On Tue, Nov 29, 2016 at 11:49 PM, Miklos Szeredi <mik...@szeredi.hu> wrote: > On Tue, Nov 29, 2016 at 1:03 PM, Amir Goldstein <amir7...@gmail.com> wrote: >> On Tue, Nov 29, 2016 at 1:34 PM, Amir Goldstein <amir7...@gmail.com> 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.