From: Valerie Aurora <vaurora@xxxxxxxxxx> Union mounts hook into the lookup path in two places: do_lookup() and lookup_hash(). Original-author: Valerie Aurora <vaurora@xxxxxxxxxx> Signed-off-by: David Howells <dhowells@xxxxxxxxxx> --- fs/namei.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/fs/namei.c b/fs/namei.c index c0adf4c..586913f 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1587,6 +1587,14 @@ retry: } if (err) nd->flags |= LOOKUP_JUMPED; + + if (needs_lookup_union(&nd->path, path)) { + int err = lookup_union(nd, name, path); + if (err < 0) + return err; +#warning which inode? + } + *inode = path->dentry->d_inode; return 0; } @@ -2135,8 +2143,12 @@ static int lookup_hash(struct nameidata *nd, struct qstr *name, path->dentry = NULL; return PTR_ERR(result); } + path->mnt = nd->path.mnt; path->dentry = result; + + if (needs_lookup_union(&nd->path, path)) + return lookup_union_locked(nd, name, path); return 0; } -- 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