diff options
author | Christoph Hellwig <hch@infradead.org> | 2010-10-10 05:36:21 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-10-25 21:26:12 -0400 |
commit | be148247cfbe2422f5709e77d9c3e10b8a6394da (patch) | |
tree | f04605bb5ea21cefd455b6fd81c51d8bb02c1521 /fs/dcache.c | |
parent | 85fe4025c616a7c0ed07bc2fc8c5371b07f3888c (diff) |
fs: take dcache_lock inside __d_path
All callers take dcache_lock just around the call to __d_path, so
take the lock into it in preparation of getting rid of dcache_lock.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/dcache.c')
-rw-r--r-- | fs/dcache.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index 83293be48149..54f93f5e6b0f 100644 --- a/fs/dcache.c +++ b/fs/dcache.c | |||
@@ -1994,7 +1994,7 @@ global_root: | |||
1994 | * Returns a pointer into the buffer or an error code if the | 1994 | * Returns a pointer into the buffer or an error code if the |
1995 | * path was too long. | 1995 | * path was too long. |
1996 | * | 1996 | * |
1997 | * "buflen" should be positive. Caller holds the dcache_lock. | 1997 | * "buflen" should be positive. |
1998 | * | 1998 | * |
1999 | * If path is not reachable from the supplied root, then the value of | 1999 | * If path is not reachable from the supplied root, then the value of |
2000 | * root is changed (without modifying refcounts). | 2000 | * root is changed (without modifying refcounts). |
@@ -2006,10 +2006,12 @@ char *__d_path(const struct path *path, struct path *root, | |||
2006 | int error; | 2006 | int error; |
2007 | 2007 | ||
2008 | prepend(&res, &buflen, "\0", 1); | 2008 | prepend(&res, &buflen, "\0", 1); |
2009 | spin_lock(&dcache_lock); | ||
2009 | error = prepend_path(path, root, &res, &buflen); | 2010 | error = prepend_path(path, root, &res, &buflen); |
2011 | spin_unlock(&dcache_lock); | ||
2012 | |||
2010 | if (error) | 2013 | if (error) |
2011 | return ERR_PTR(error); | 2014 | return ERR_PTR(error); |
2012 | |||
2013 | return res; | 2015 | return res; |
2014 | } | 2016 | } |
2015 | 2017 | ||