diff options
author | Krishna Kumar <krkumar2@in.ibm.com> | 2008-10-20 02:14:40 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@citi.umich.edu> | 2008-10-22 14:04:34 -0400 |
commit | 6dfcde98a299196f13dd66417663a819f0ac4156 (patch) | |
tree | 78c2d21004ec9216784d264bdcc7b8b2692660f8 | |
parent | 6c6a426fdcb374b7641d7cf9eea88410828b9d9a (diff) |
nfsd: Drop reference in expkey_parse error cases
Drop reference to export key on error. Compile tested.
Signed-off-by: Krishna Kumar <krkumar2@in.ibm.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
-rw-r--r-- | fs/nfsd/export.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c index 9dc036f18356..7ce2c6e4e23e 100644 --- a/fs/nfsd/export.c +++ b/fs/nfsd/export.c | |||
@@ -151,8 +151,10 @@ static int expkey_parse(struct cache_detail *cd, char *mesg, int mlen) | |||
151 | 151 | ||
152 | /* now we want a pathname, or empty meaning NEGATIVE */ | 152 | /* now we want a pathname, or empty meaning NEGATIVE */ |
153 | err = -EINVAL; | 153 | err = -EINVAL; |
154 | if ((len=qword_get(&mesg, buf, PAGE_SIZE)) < 0) | 154 | if ((len=qword_get(&mesg, buf, PAGE_SIZE)) < 0) { |
155 | cache_put(&ek->h, &svc_expkey_cache); | ||
155 | goto out; | 156 | goto out; |
157 | } | ||
156 | dprintk("Path seems to be <%s>\n", buf); | 158 | dprintk("Path seems to be <%s>\n", buf); |
157 | err = 0; | 159 | err = 0; |
158 | if (len == 0) { | 160 | if (len == 0) { |
@@ -164,8 +166,10 @@ static int expkey_parse(struct cache_detail *cd, char *mesg, int mlen) | |||
164 | } else { | 166 | } else { |
165 | struct nameidata nd; | 167 | struct nameidata nd; |
166 | err = path_lookup(buf, 0, &nd); | 168 | err = path_lookup(buf, 0, &nd); |
167 | if (err) | 169 | if (err) { |
170 | cache_put(&ek->h, &svc_expkey_cache); | ||
168 | goto out; | 171 | goto out; |
172 | } | ||
169 | 173 | ||
170 | dprintk("Found the path %s\n", buf); | 174 | dprintk("Found the path %s\n", buf); |
171 | key.ek_path = nd.path; | 175 | key.ek_path = nd.path; |