On April 3, 2015 12:54:50 AM CDT, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: >On Thu, Apr 02, 2015 at 08:56:20PM -0500, Eric W. Biederman wrote: > >One general note - I'd probably put a pointer to that sucker into >struct >mount. For one thing, root-preserving clone_mnt() is a fairly common >case. For another, searching for that thing in mnt_put_root() looks >wrong. Matter of taste, but... > >Another thing is that IMO it's better to preallocate that thing in >vfs_kern_mount() and free if it turns out to be unused. Simpler >cleanup >path that way... Those do sound like reasonable simplifications. >> - mnt->mnt.mnt_root = root; >> + err = mnt_set_root(mnt, root); >> + if (err) { >> + dput(mnt->mnt.mnt_root); > > Unless I'm misreading your code, mnt_set_root() does *not* set it >on failure, so what's going on here? I will have to look when I get the code in front of me again. >> #define DCACHE_FALLTHRU 0x01000000 /* Fall through to lower layer >*/ > ^^^^^^^^^^ >> +#define DCACHE_MOUNTROOT 0x01000000 /* is root of a vfsmount */ > ^^^^^^^^^^ > > Er... Good point. I don't think DCACHE_FALLTHRU existed when I wrote the patch and I missed this detail during the rebase. Sigh. I will fix it for the next round. Hopefully DCACHE_FALLTHRU does not have implications for the rest of my changes. Eric -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html