[PATCH] nfsd4: recovery lookup dir check
authorJ. Bruce Fields <bfields@citi.umich.edu>
Thu, 19 Jan 2006 01:43:29 +0000 (17:43 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 19 Jan 2006 03:20:26 +0000 (19:20 -0800)
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>
fs/nfsd/nfs4recover.c

index 64f4af3651a1b36a7ed7c01c054d70b2fee90642..06da7506363cbcd1548c0e0a59302db497d7ca21 100644 (file)
@@ -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)