apparmor/kernel-patches/2.6.26/fix-d_namespace_path-tmp-root.diff
2008-11-28 13:11:22 +00:00

25 lines
806 B
Diff

---
fs/namespace.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -2355,7 +2355,7 @@ void __put_mnt_ns(struct mnt_namespace *
char *d_namespace_path(struct dentry *dentry, struct vfsmount *vfsmnt,
char *buf, int buflen)
{
- struct path root, ns_root = { };
+ struct path root, tmp, ns_root = { };
struct path path = { .mnt = vfsmnt, .dentry = dentry };
char *res;
@@ -2369,7 +2369,8 @@ char *d_namespace_path(struct dentry *de
if (ns_root.mnt)
ns_root.dentry = dget(ns_root.mnt->mnt_root);
spin_unlock(&vfsmount_lock);
- res = __d_path(&path, &ns_root, buf, buflen,
+ tmp = ns_root;
+ res = __d_path(&path, &tmp, buf, buflen,
D_PATH_FAIL_DELETED | D_PATH_DISCONNECT);
path_put(&root);
path_put(&ns_root);