Re: [PATCH][RFC] nfsd/lockd: have locks_in_grace take a sb arg

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

 



On Tue, Apr 10, 2012 at 07:13:17AM -0400, Jeff Layton wrote:
> Yes, FS implementers should expect that this could get called
> frequently and ensure that it doesn't generate undue load.
> 
> I'd expect that any that do this via an upcall would ratelimit it in
> some fashion during the grace period. They'd then set a flag or
> something in the superblock afterward so they wouldn't need to upcall
> anymore once it ends.
> 
> I'd rather push those smarts into the filesystems for now though in
> order to allow for more flexibility. There are potential designs where
> a fs could end up back in grace after initially leaving it and we
> should allow for that.

Even then a grace period transition should be rare, so I'd think they'd
want to notify the kernel on the transition rather than polling?

> 
> > > @@ -3183,7 +3183,7 @@ nfs4_laundromat(void)
> > >  	nfs4_lock_state();
> > >  
> > >  	dprintk("NFSD: laundromat service - starting\n");
> > > -	if (locks_in_grace())
> > > +	if (generic_locks_in_grace())
> > >  		nfsd4_end_grace();
> > 
> > Looking at the code.... This is really just checking whether we've ended
> > our own grace period.  The laundromat's scheduled to run a grace period
> > after startup.  So I think we should just make this:
> > 
> > 	static bool grace_ended = false;
> > 
> > 	if (!grace_ended) {
> > 		grace_ended = true;
> > 		nfsd4_end_grace();
> > 	}
> > 
> > or something.  No reason not to do that now.
> > 
> > (Hm, and maybe there's a reason to: locks_in_grace() could in theory
> > still return true on a second run of nfs4_laundromat(), but
> > nfsd4_end_grace() probably shouldn't really be run twice?)
> > 
> 
> Most of the things that nfsd4_end_grace does should be safe to run
> twice. The exception is nfsd4_recdir_purge_old which could be bad news.
> So, doing what you suggest looks reasonable. I'll add that into the next
> respin.

Thanks; that at least I can merge whenever it's ready.

--b.
--
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