diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2009-04-07 11:49:53 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-11 21:35:59 -0400 |
commit | 2a737871108de9ba8930f7650d549f1383767f8b (patch) | |
tree | d4a8c5d7da4624c4a8973a4c9369af7a915dca05 /include | |
parent | 9b4a9b14a793bc69b505ed916051f6f32db13bb8 (diff) | |
download | linux-3.10-2a737871108de9ba8930f7650d549f1383767f8b.tar.gz linux-3.10-2a737871108de9ba8930f7650d549f1383767f8b.tar.bz2 linux-3.10-2a737871108de9ba8930f7650d549f1383767f8b.zip |
Cache root in nameidata
New field: nd->root. When pathname resolution wants to know the root,
check if nd->root.mnt is non-NULL; use nd->root if it is, otherwise
copy current->fs->root there. After path_walk() is finished, we check
if we'd got a cached value in nd->root and drop it. Before calling
path_walk() we should either set nd->root.mnt to NULL *or* copy (and
pin down) some path to nd->root. In the latter case we won't be
looking at current->fs->root at all.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/namei.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/namei.h b/include/linux/namei.h index 518098fe63a..325dd3ad39a 100644 --- a/include/linux/namei.h +++ b/include/linux/namei.h @@ -18,6 +18,7 @@ enum { MAX_NESTED_LINKS = 8 }; struct nameidata { struct path path; struct qstr last; + struct path root; unsigned int flags; int last_type; unsigned depth; |