diff options
Diffstat (limited to 'fs/dcache.c')
-rw-r--r-- | fs/dcache.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index 9f2c13417969..995d08069d26 100644 --- a/fs/dcache.c +++ b/fs/dcache.c | |||
@@ -2014,10 +2014,7 @@ char *d_path(const struct path *path, char *buf, int buflen) | |||
2014 | if (path->dentry->d_op && path->dentry->d_op->d_dname) | 2014 | if (path->dentry->d_op && path->dentry->d_op->d_dname) |
2015 | return path->dentry->d_op->d_dname(path->dentry, buf, buflen); | 2015 | return path->dentry->d_op->d_dname(path->dentry, buf, buflen); |
2016 | 2016 | ||
2017 | read_lock(¤t->fs->lock); | 2017 | get_fs_root(current->fs, &root); |
2018 | root = current->fs->root; | ||
2019 | path_get(&root); | ||
2020 | read_unlock(¤t->fs->lock); | ||
2021 | spin_lock(&dcache_lock); | 2018 | spin_lock(&dcache_lock); |
2022 | tmp = root; | 2019 | tmp = root; |
2023 | res = __d_path(path, &tmp, buf, buflen); | 2020 | res = __d_path(path, &tmp, buf, buflen); |
@@ -2129,12 +2126,7 @@ SYSCALL_DEFINE2(getcwd, char __user *, buf, unsigned long, size) | |||
2129 | if (!page) | 2126 | if (!page) |
2130 | return -ENOMEM; | 2127 | return -ENOMEM; |
2131 | 2128 | ||
2132 | read_lock(¤t->fs->lock); | 2129 | get_fs_root_and_pwd(current->fs, &root, &pwd); |
2133 | pwd = current->fs->pwd; | ||
2134 | path_get(&pwd); | ||
2135 | root = current->fs->root; | ||
2136 | path_get(&root); | ||
2137 | read_unlock(¤t->fs->lock); | ||
2138 | 2130 | ||
2139 | error = -ENOENT; | 2131 | error = -ENOENT; |
2140 | spin_lock(&dcache_lock); | 2132 | spin_lock(&dcache_lock); |