Re: nfsd grace period open owners

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

 



On Wed, Sep 28, 2011 at 02:06:16PM -0400, Bryan Schumaker wrote:
> Hi Bruce,
> 
> I'm updating my fault injection patches to work with your recent stateid changes, and I had a question about something I'm seeing on the server.  When I reboot the server it will enter a grace period and reply to any OPEN requests from the client with NFSERR_GRACE.  I used Wireshark to see that NFSERR_GRACE is returned 12 times before the open succeeds, so 13 OPEN requests total.  When I send the command to forget all open owners I find that 13 open owners have been forgotten, but I only expecting to find 1.  Is this what you would expect the server to do?

Huh.  No, that doesn't sound right.  A failed open doesn't confirm the
openowner, and I don't think there's any reason to keep around an
unconfirmed openowner.

Out of curiosity, is the client using a different openowner for each
open?

--b.

> 
> I've pasted the code I use to count and delete open owners below.  The variable "num" has the value 0, so all open owners should be deleted.
> 
> - Bryan
> 
> static int nfsd_forget_n_openowners(u64 num)
> {
> 	int i, count = 0;
> 	struct nfs4_stateowner *sop, *next;
> 
> 	for (i = 0; i < OPEN_OWNER_HASH_SIZE; i++) {
> 		list_for_each_entry_safe(sop, next, &open_ownerstr_hashtbl[i], so_strhash) {
> 			release_openowner(openowner(sop));
> 			if (++count == num)
> 				return count;
> 		}
> 	}
> 	return count;
> }
> 
> void nfsd_forget_openowners(u64 num)
> {
> 	int count;
> 
> 	nfs4_lock_state();
> 	count = nfsd_forget_n_openowners(num);
> 	nfs4_unlock_state();
> 
> 	printk(KERN_INFO "%s %s Forgot %d open owners", __FILE__, __func__, count);
> }
--
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