Commit c2642ab05b855d2d3b850ddf90dbb02b1b9358ac

Authored by J. Bruce Fields
Committed by Linus Torvalds
1 parent d22749b62f

[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>

Showing 1 changed file with 4 additions and 3 deletions Side-by-side Diff

fs/nfsd/nfs4recover.c
... ... @@ -399,9 +399,10 @@
399 399  
400 400 nfs4_save_user(&uid, &gid);
401 401  
402   - status = path_lookup(rec_dirname, LOOKUP_FOLLOW, &rec_dir);
403   - if (status == -ENOENT)
404   - printk("NFSD: recovery directory %s doesn't exist\n",
  402 + status = path_lookup(rec_dirname, LOOKUP_FOLLOW | LOOKUP_DIRECTORY,
  403 + &rec_dir);
  404 + if (status)
  405 + printk("NFSD: unable to find recovery directory %s\n",
405 406 rec_dirname);
406 407  
407 408 if (!status)