diff options
Diffstat (limited to 'fs/dcache.c')
-rw-r--r-- | fs/dcache.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index 75659a6fd1f8..9e5cd3c3a6ba 100644 --- a/fs/dcache.c +++ b/fs/dcache.c | |||
@@ -1910,7 +1910,7 @@ char *__d_path(const struct path *path, struct path *root, | |||
1910 | 1910 | ||
1911 | spin_lock(&vfsmount_lock); | 1911 | spin_lock(&vfsmount_lock); |
1912 | prepend(&end, &buflen, "\0", 1); | 1912 | prepend(&end, &buflen, "\0", 1); |
1913 | if (!IS_ROOT(dentry) && d_unhashed(dentry) && | 1913 | if (d_unlinked(dentry) && |
1914 | (prepend(&end, &buflen, " (deleted)", 10) != 0)) | 1914 | (prepend(&end, &buflen, " (deleted)", 10) != 0)) |
1915 | goto Elong; | 1915 | goto Elong; |
1916 | 1916 | ||
@@ -2035,7 +2035,7 @@ char *dentry_path(struct dentry *dentry, char *buf, int buflen) | |||
2035 | 2035 | ||
2036 | spin_lock(&dcache_lock); | 2036 | spin_lock(&dcache_lock); |
2037 | prepend(&end, &buflen, "\0", 1); | 2037 | prepend(&end, &buflen, "\0", 1); |
2038 | if (!IS_ROOT(dentry) && d_unhashed(dentry) && | 2038 | if (d_unlinked(dentry) && |
2039 | (prepend(&end, &buflen, "//deleted", 9) != 0)) | 2039 | (prepend(&end, &buflen, "//deleted", 9) != 0)) |
2040 | goto Elong; | 2040 | goto Elong; |
2041 | if (buflen < 1) | 2041 | if (buflen < 1) |
@@ -2097,9 +2097,8 @@ SYSCALL_DEFINE2(getcwd, char __user *, buf, unsigned long, size) | |||
2097 | read_unlock(¤t->fs->lock); | 2097 | read_unlock(¤t->fs->lock); |
2098 | 2098 | ||
2099 | error = -ENOENT; | 2099 | error = -ENOENT; |
2100 | /* Has the current directory has been unlinked? */ | ||
2101 | spin_lock(&dcache_lock); | 2100 | spin_lock(&dcache_lock); |
2102 | if (IS_ROOT(pwd.dentry) || !d_unhashed(pwd.dentry)) { | 2101 | if (!d_unlinked(pwd.dentry)) { |
2103 | unsigned long len; | 2102 | unsigned long len; |
2104 | struct path tmp = root; | 2103 | struct path tmp = root; |
2105 | char * cwd; | 2104 | char * cwd; |