On Wed, May 3, 2017 at 10:01 PM, Amir Goldstein <amir73il@xxxxxxxxx> wrote: > On Wed, May 3, 2017 at 6:46 PM, Amir Goldstein <amir73il@xxxxxxxxx> wrote: >> On Wed, May 3, 2017 at 6:43 PM, Miklos Szeredi <miklos@xxxxxxxxxx> wrote: >>> On Mon, May 1, 2017 at 3:41 PM, Amir Goldstein <amir73il@xxxxxxxxx> wrote: >>>> Miklos, >>>> >>>> This is v4 series of redirect by file handle and constant inode numbers. >>>> this series fixes constant inode numbers for stat(2) for overlayfs >>>> configuration of all layers on the same fs. >>> >>> Great work. >>> >>> I did some mutilation (aka. simplification) and pushed the result to >>> overlayfs-constino.v5 >>> > > Simplified indeed! > >>> No time to check if it works or not, so probably not... > > Oh but it does :-) > Passed on my tests. > I pushed branch master of unionmunt-tests for testing constino, > so you can use that if you like, > because my overlayfs-devel branch already plays with verify_lower. > > Anyway, I see that you relaxed the uuid_is_null() constrain, so now Wasn't intentional; will restore it... > you can also test ./run --ov=0 --samefs > with (default) tmpfs, although that is not really stress testing fh decoding.. Lets just add s_uuid to tmpfs, should be trivial. > >>> tomorrow, but if you have time, please feel free to test and review my >>> changes. >>> >> > > Reviewed. Thanks. > > Specifically: > ACK for simplifications of "store file handle of lower inode on copy up" > ACK for simplifications of "lookup non-dir copy-up-origin by file handle" > > One bug here: > > + if (IS_ERR(origin)) { > + if (origin == ERR_PTR(-ESTALE)) > + origin = NULL; > + } > + if (ovl_dentry_weird(origin) || > > Should be else if. > xfstest overlay/019 (fsstress) hits NULL pointer deref at ovl_dentry_weird() > > + ((d_inode(origin)->i_mode ^ d_inode(dentry)->i_mode) & S_IFMT)) { > + dput(origin); > + origin = NULL; > + goto invalid; > + } > + Right, will fix. Thanks, Miklos