Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 217806
b: refs/heads/master
c: be14824
h: refs/heads/master
v: v3
  • Loading branch information
Christoph Hellwig authored and Al Viro committed Oct 26, 2010
1 parent 8020d6e commit cb02c1d
Show file tree
Hide file tree
Showing 5 changed files with 5 additions and 9 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: 85fe4025c616a7c0ed07bc2fc8c5371b07f3888c
refs/heads/master: be148247cfbe2422f5709e77d9c3e10b8a6394da
6 changes: 4 additions & 2 deletions trunk/fs/dcache.c
Original file line number Diff line number Diff line change
Expand Up @@ -1994,7 +1994,7 @@ static int prepend_path(const struct path *path, struct path *root,
* Returns a pointer into the buffer or an error code if the
* path was too long.
*
* "buflen" should be positive. Caller holds the dcache_lock.
* "buflen" should be positive.
*
* If path is not reachable from the supplied root, then the value of
* root is changed (without modifying refcounts).
Expand All @@ -2006,10 +2006,12 @@ char *__d_path(const struct path *path, struct path *root,
int error;

prepend(&res, &buflen, "\0", 1);
spin_lock(&dcache_lock);
error = prepend_path(path, root, &res, &buflen);
spin_unlock(&dcache_lock);

if (error)
return ERR_PTR(error);

return res;
}

Expand Down
2 changes: 0 additions & 2 deletions trunk/fs/seq_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -462,9 +462,7 @@ int seq_path_root(struct seq_file *m, struct path *path, struct path *root,
if (size) {
char *p;

spin_lock(&dcache_lock);
p = __d_path(path, root, buf, size);
spin_unlock(&dcache_lock);
res = PTR_ERR(p);
if (!IS_ERR(p)) {
char *end = mangle_path(buf, p, esc);
Expand Down
2 changes: 0 additions & 2 deletions trunk/security/apparmor/path.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,8 @@ static int d_namespace_path(struct path *path, char *buf, int buflen,
path_get(&root);
}

spin_lock(&dcache_lock);
tmp = root;
res = __d_path(path, &tmp, buf, buflen);
spin_unlock(&dcache_lock);

*name = res;
/* handle error conditions - and still allow a partial path to
Expand Down
2 changes: 0 additions & 2 deletions trunk/security/tomoyo/realpath.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,10 +127,8 @@ char *tomoyo_realpath_from_path(struct path *path)
/* If we don't have a vfsmount, we can't calculate. */
if (!path->mnt)
break;
spin_lock(&dcache_lock);
/* go to whatever namespace root we are under */
pos = __d_path(path, &ns_root, buf, buf_len);
spin_unlock(&dcache_lock);
/* Prepend "/proc" prefix if using internal proc vfs mount. */
if (!IS_ERR(pos) && (path->mnt->mnt_flags & MNT_INTERNAL) &&
(path->mnt->mnt_sb->s_magic == PROC_SUPER_MAGIC)) {
Expand Down

0 comments on commit cb02c1d

Please sign in to comment.