Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 98446
b: refs/heads/master
c: be285c7
h: refs/heads/master
v: v3
  • Loading branch information
Andreas Gruenbacher authored and Al Viro committed Jun 23, 2008
1 parent 4839e16 commit d295eb4
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f9f48ec72bfc9489a30bc6ddbfcf27d86a8bc651
refs/heads/master: be285c712bbbe5db43e503782fbef2bfeaa345f9
12 changes: 7 additions & 5 deletions trunk/fs/dcache.c
Original file line number Diff line number Diff line change
Expand Up @@ -1782,6 +1782,7 @@ char *__d_path(const struct path *path, struct path *root,
char * end = buffer+buflen;
char * retval;

spin_lock(&vfsmount_lock);
prepend(&end, &buflen, "\0", 1);
if (!IS_ROOT(dentry) && d_unhashed(dentry) &&
(prepend(&end, &buflen, " (deleted)", 10) != 0))
Expand All @@ -1800,14 +1801,11 @@ char *__d_path(const struct path *path, struct path *root,
break;
if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) {
/* Global root? */
spin_lock(&vfsmount_lock);
if (vfsmnt->mnt_parent == vfsmnt) {
spin_unlock(&vfsmount_lock);
goto global_root;
}
dentry = vfsmnt->mnt_mountpoint;
vfsmnt = vfsmnt->mnt_parent;
spin_unlock(&vfsmount_lock);
continue;
}
parent = dentry->d_parent;
Expand All @@ -1820,6 +1818,8 @@ char *__d_path(const struct path *path, struct path *root,
dentry = parent;
}

out:
spin_unlock(&vfsmount_lock);
return retval;

global_root:
Expand All @@ -1829,9 +1829,11 @@ char *__d_path(const struct path *path, struct path *root,
goto Elong;
root->mnt = vfsmnt;
root->dentry = dentry;
return retval;
goto out;

Elong:
return ERR_PTR(-ENAMETOOLONG);
retval = ERR_PTR(-ENAMETOOLONG);
goto out;
}

/**
Expand Down

0 comments on commit d295eb4

Please sign in to comment.