On Thu, Aug 02, 2012 at 10:04:05AM +1000, NeilBrown wrote: > I never liked that fact that stopping the last thread did something extra. > So when I added the ability to control the number of threads via sysfs I made (You meant nfsd, not sysfs, right? Or is there some interface I'm overlooking?) > sure that it *only* controlled the number of threads. However I kept the > legacy behaviour that sending SIGKILL to the nfsd threads would also unexport > things. Obviously I should have documented this better. > > The more I think out it, the more I'd really like to go back to that. It > really is the *right* thing to do. ... > > > 1/ iterate through all no-sleeping threads setting a flag an increasing a > > > counter. > > > 2/ when a thread completes current request, if test_and_clear the flag, it > > > atomic_dec_and_test the counter and then wakes up some wait_queue_head. > > > 3/ 'flush'ing thread waits on the waut_queue_head for the counter to be 0. > > > > > > If you don't hate it I could possibly even provide some code. By the way, are you still looking into one of those approaches? --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