public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC] Should lockd get into grace_period when statd start but not stop?
@ 2010-03-10 10:22 Mi Jinlong
  2010-03-10 18:24 ` J. Bruce Fields
  0 siblings, 1 reply; 8+ messages in thread
From: Mi Jinlong @ 2010-03-10 10:22 UTC (permalink / raw)
  To: Trond.Myklebust, J. Bruce Fields, Chuck Lever, NFSv3 list

Hi,

   When using command "service nfslock stop" and "service nfsklock start"
to restart the nfslock service at RHEL with kernel 2.6.31, if start the service
after stop it more than the grace_period time, lock which lockd get before
cann't be reclaimed for the grace_period is timeout.

So, IMO, the lockd should get into grace_period when statd start not stop?

Some code at kernel: fs/lockd/svclock.c
 ....
 411         if (locks_in_grace() && !reclaim) {
 412                 ret = nlm_lck_denied_grace_period;
 413                 goto out;
 414         }
 415         if (reclaim && !locks_in_grace()) {
 416                 ret = nlm_lck_denied_grace_period;
 417                 goto out;
 418         }
 ....

I think it can implement it like that:
  1) When statd stop, it send a KILL signal to lockd,
     and lockd only release the lock, but don't get into grace_period.
  2) When statd start, it send one some other signal to lockd,
     and lockd only get into grace_period. The lock will be reclaimed.

thanks,
Mi Jinlong


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-03-16 16:54 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-10 10:22 [RFC] Should lockd get into grace_period when statd start but not stop? Mi Jinlong
2010-03-10 18:24 ` J. Bruce Fields
2010-03-11  1:02   ` Mi Jinlong
2010-03-11 15:58     ` J. Bruce Fields
2010-03-12  9:42       ` Mi Jinlong
2010-03-12 23:08         ` J. Bruce Fields
2010-03-16 10:05           ` Mi Jinlong
2010-03-16 16:56             ` J. Bruce Fields

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox