summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@citi.umich.edu>2006-01-18 17:43:29 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-18 19:20:26 -0800
commitc2642ab05b855d2d3b850ddf90dbb02b1b9358ac (patch)
tree38625ce3e2d5adb2d669875a41b2698b289d8ddb
parentd22749b62f3e12de26b86a200f9a5bf7afe3590e (diff)
downloadlinux-c2642ab05b855d2d3b850ddf90dbb02b1b9358ac.tar.gz
linux-c2642ab05b855d2d3b850ddf90dbb02b1b9358ac.tar.bz2
linux-c2642ab05b855d2d3b850ddf90dbb02b1b9358ac.zip
[PATCH] nfsd4: recovery lookup dir check
Make sure we get a directory when we look up the recovery directory. Thanks to Christoph Hellwig for the bug report. Based on feedback from Christoph and others, we may remove the need for this lookup and just pass in a file descriptor from userspace instead, and/or completely move the directory handling to userspace. For now we're just fixing the obvious bugs. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--fs/nfsd/nfs4recover.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index 64f4af3651a1..06da7506363c 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -399,9 +399,10 @@ nfsd4_init_recdir(char *rec_dirname)
nfs4_save_user(&uid, &gid);
- status = path_lookup(rec_dirname, LOOKUP_FOLLOW, &rec_dir);
- if (status == -ENOENT)
- printk("NFSD: recovery directory %s doesn't exist\n",
+ status = path_lookup(rec_dirname, LOOKUP_FOLLOW | LOOKUP_DIRECTORY,
+ &rec_dir);
+ if (status)
+ printk("NFSD: unable to find recovery directory %s\n",
rec_dirname);
if (!status)