nfsd4: fix spurious 4.1 post-reboot failures
authorJ. Bruce Fields <bfields@redhat.com>
Mon, 2 Jan 2012 22:30:05 +0000 (17:30 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Mon, 2 Jan 2012 22:32:59 +0000 (17:32 -0500)
In the NFSv4.1 case, this could cause a spurious "NFSD: failed to write
recovery record (err -17); please check that /var/lib/nfs/v4recovery
exists and is writable.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Reported-by: Steve Dickson <SteveD@redhat.com>
fs/nfsd/nfs4recover.c

index ed083b9a731b630b02ddaac5957a6a558cead62c..28712e20bb1103cbe17f263c8806908ff35acdd6 100644 (file)
@@ -144,8 +144,15 @@ nfsd4_create_clid_dir(struct nfs4_client *clp)
                status = PTR_ERR(dentry);
                goto out_unlock;
        }
-       status = -EEXIST;
        if (dentry->d_inode)
+               /*
+                * In the 4.1 case, where we're called from
+                * reclaim_complete(), records from the previous reboot
+                * may still be left, so this is OK.
+                *
+                * In the 4.0 case, we should never get here; but we may
+                * as well be forgiving and just succeed silently.
+                */
                goto out_put;
        status = mnt_want_write(rec_file->f_path.mnt);
        if (status)