aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd
diff options
context:
space:
mode:
authorJan Blunck <jblunck@suse.de>2008-02-14 22:34:35 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-15 00:13:33 -0500
commit1d957f9bf87da74f420424d16ece005202bbebd3 (patch)
tree363d4770c0c74a536524c99ccd2762ce96ee9bbe /fs/nfsd
parent4ac9137858e08a19f29feac4e1f4df7c268b0ba5 (diff)
Introduce path_put()
* Add path_put() functions for releasing a reference to the dentry and vfsmount of a struct path in the right order * Switch from path_release(nd) to path_put(&nd->path) * Rename dput_path() to path_put_conditional() [akpm@linux-foundation.org: fix cifs] Signed-off-by: Jan Blunck <jblunck@suse.de> Signed-off-by: Andreas Gruenbacher <agruen@suse.de> Acked-by: Christoph Hellwig <hch@lst.de> Cc: <linux-fsdevel@vger.kernel.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Steven French <sfrench@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/nfsd')
-rw-r--r--fs/nfsd/export.c10
-rw-r--r--fs/nfsd/nfs4recover.c2
-rw-r--r--fs/nfsd/nfs4state.c2
3 files changed, 7 insertions, 7 deletions
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
index 2ac0e30285c2..717413f07e9a 100644
--- a/fs/nfsd/export.c
+++ b/fs/nfsd/export.c
@@ -177,7 +177,7 @@ static int expkey_parse(struct cache_detail *cd, char *mesg, int mlen)
177 cache_put(&ek->h, &svc_expkey_cache); 177 cache_put(&ek->h, &svc_expkey_cache);
178 else 178 else
179 err = -ENOMEM; 179 err = -ENOMEM;
180 path_release(&nd); 180 path_put(&nd.path);
181 } 181 }
182 cache_flush(); 182 cache_flush();
183 out: 183 out:
@@ -630,7 +630,7 @@ static int svc_export_parse(struct cache_detail *cd, char *mesg, int mlen)
630 kfree(exp.ex_uuid); 630 kfree(exp.ex_uuid);
631 kfree(exp.ex_path); 631 kfree(exp.ex_path);
632 if (nd.path.dentry) 632 if (nd.path.dentry)
633 path_release(&nd); 633 path_put(&nd.path);
634 out_no_path: 634 out_no_path:
635 if (dom) 635 if (dom)
636 auth_domain_put(dom); 636 auth_domain_put(dom);
@@ -1098,7 +1098,7 @@ finish:
1098 cache_put(&fsid_key->h, &svc_expkey_cache); 1098 cache_put(&fsid_key->h, &svc_expkey_cache);
1099 if (clp) 1099 if (clp)
1100 auth_domain_put(clp); 1100 auth_domain_put(clp);
1101 path_release(&nd); 1101 path_put(&nd.path);
1102out_unlock: 1102out_unlock:
1103 exp_writeunlock(); 1103 exp_writeunlock();
1104out: 1104out:
@@ -1150,7 +1150,7 @@ exp_unexport(struct nfsctl_export *nxp)
1150 1150
1151 err = -EINVAL; 1151 err = -EINVAL;
1152 exp = exp_get_by_name(dom, nd.path.mnt, nd.path.dentry, NULL); 1152 exp = exp_get_by_name(dom, nd.path.mnt, nd.path.dentry, NULL);
1153 path_release(&nd); 1153 path_put(&nd.path);
1154 if (IS_ERR(exp)) 1154 if (IS_ERR(exp))
1155 goto out_domain; 1155 goto out_domain;
1156 1156
@@ -1209,7 +1209,7 @@ exp_rootfh(svc_client *clp, char *path, struct knfsd_fh *f, int maxsize)
1209 fh_put(&fh); 1209 fh_put(&fh);
1210 exp_put(exp); 1210 exp_put(exp);
1211out: 1211out:
1212 path_release(&nd); 1212 path_put(&nd.path);
1213 return err; 1213 return err;
1214} 1214}
1215 1215
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index a7a8fdf86ea7..1ff90625860f 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -415,5 +415,5 @@ nfsd4_shutdown_recdir(void)
415 if (!rec_dir_init) 415 if (!rec_dir_init)
416 return; 416 return;
417 rec_dir_init = 0; 417 rec_dir_init = 0;
418 path_release(&rec_dir); 418 path_put(&rec_dir.path);
419} 419}
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index be2b9ecd230a..bcb97d8e8b8b 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -3265,7 +3265,7 @@ nfs4_reset_recoverydir(char *recdir)
3265 nfs4_set_recdir(recdir); 3265 nfs4_set_recdir(recdir);
3266 status = 0; 3266 status = 0;
3267 } 3267 }
3268 path_release(&nd); 3268 path_put(&nd.path);
3269 return status; 3269 return status;
3270} 3270}
3271 3271