diff options
author | David S. Miller <davem@davemloft.net> | 2008-02-23 20:38:20 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-23 20:38:20 -0800 |
commit | 8d3c202be23c5a915f7053ebd4e96f44700c6a62 (patch) | |
tree | e0f017aff86d3ad0b858fe85f44e11096087ed00 /kernel/fork.c | |
parent | 1b04ab4597725f75f94942da9aa40daa7b9a4bd9 (diff) | |
parent | 038eb0ea04b245351be34b0ae76b55eee4603989 (diff) |
Merge branch 'master' of ../linux-2.6/
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 4363a4eb84e..dd249c37b3a 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -600,16 +600,16 @@ static struct fs_struct *__copy_fs_struct(struct fs_struct *old) rwlock_init(&fs->lock); fs->umask = old->umask; read_lock(&old->lock); - fs->rootmnt = mntget(old->rootmnt); - fs->root = dget(old->root); - fs->pwdmnt = mntget(old->pwdmnt); - fs->pwd = dget(old->pwd); - if (old->altroot) { - fs->altrootmnt = mntget(old->altrootmnt); - fs->altroot = dget(old->altroot); + fs->root = old->root; + path_get(&old->root); + fs->pwd = old->pwd; + path_get(&old->pwd); + if (old->altroot.dentry) { + fs->altroot = old->altroot; + path_get(&old->altroot); } else { - fs->altrootmnt = NULL; - fs->altroot = NULL; + fs->altroot.mnt = NULL; + fs->altroot.dentry = NULL; } read_unlock(&old->lock); } |