Re: Grace period NEVER ends

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 12, 2011 at 10:08:03AM -0400, Casey Bodley wrote:
> On Thu, Aug 11, 2011 at 10:15 PM, J. Bruce Fields <bfields@xxxxxxxxxx> wrote:
> > On Thu, Aug 11, 2011 at 06:29:20PM -0700, Boaz Harrosh wrote:
> >> With this patch I'm back to the previous behavior. That is
> >> wait your grace period then continue.
> >
> > Is it true for some reason that the client never sends RECLAIM_COMPLETE?
> 
> I tested this yesterday with the windows client and saw the same
> never-ending grace period on OPEN.  We do send RECLAIM_COMPLETE, and
> it completes successfully.  Other operations like CREATE and REMOVE
> succeed as well.

Argh.  Does this help?

Unfortunately, this doesn't explain Malcolm Locke's problem, as it's 4.1
specific.

--b.

commit d43b4d070a24edcbe5f5e9ffcf7a33bbeccdd47d
Author: J. Bruce Fields <bfields@xxxxxxxxxx>
Date:   Fri Aug 12 10:27:18 2011 -0400

    nfsd4: fix failure to end nfsd4 grace period
    
    Even if we fail to write a recovery record to stable storage, we should
    still mark the client as having acquired its first state.  Otherwise we
    leave 4.1 clients with indefinite ERR_GRACE returns.
    
    Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>

diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index 29d77f6..4c7537d 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -156,10 +156,9 @@ out_put:
 	dput(dentry);
 out_unlock:
 	mutex_unlock(&dir->d_inode->i_mutex);
-	if (status == 0) {
-		clp->cl_firststate = 1;
+	if (status == 0)
 		vfs_fsync(rec_file, 0);
-	}
+	clp->cl_firststate = 1;
 	nfs4_reset_creds(original_cred);
 	dprintk("NFSD: nfsd4_create_clid_dir returns %d\n", status);
 	return status;
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux