On Mon, 2008-10-27 at 17:20 -0400, Peter Staubach wrote: > J. Bruce Fields wrote: > > On Mon, Oct 27, 2008 at 05:14:38PM -0400, Peter Staubach wrote: > > > >> J. Bruce Fields wrote: > >> > >>> On Mon, Oct 27, 2008 at 03:22:57PM -0400, Peter Staubach wrote: > >>> > >>> > >>>> J. Bruce Fields wrote: > >>>> > >>>> > >>>>> On Mon, Oct 27, 2008 at 02:49:27PM +0800, hexf wrote: > >>>>> > >>>>> > >>>>>> We are using nfsv3. Now we meet a demand. If a client which hold a > >>>>>> lock crash, after it reboot, its statd daemon can notify the nfs > >>>>>> server to release the lock. But if this client will not reboot for > >>>>>> some reason(or will reboot after a long time), then the lock it > >>>>>> holding will not be released.In nfsv3 and nlmv4,it seems there is no > >>>>>> time-out mechnism for this situation. How would we solve this > >>>>>> question? My colleague advise me to modify the code of NLM/NSM to meet > >>>>>> this demand,but is seems quite a complicated work.Can you give me some > >>>>>> advice? > >>>>>> > >>>>>> > >>>>> It might be possible to modify the server so that it dropped all locks > >>>>> from a client it hadn't heard from in a while. However, nfsv2/v3 > >>>>> clients are not required to contact the server regularly while they hold > >>>>> locks. So you may end up revoking locks held by perfectly good > >>>>> functioning clients. > >>>>> > >>>>> As an ugly workaround, rebooting the server will clear the problem, as > >>>>> it will notify clients to recover their locks on restart, and any dead > >>>>> clients will fail to recover their locks. > >>>>> > >>>>> > >>>>> > >>>> Didn't Wendy Cheng submit some patches to implement a > >>>> "clearlocks" sort of functionality? What happened with > >>>> them? > >>>> > >>>> > >>> Yes, but that's motivated by the case of migrating all clients using one > >>> export; so it'll drop all locks held on a single filesystem, or all > >>> locks acquired using a single server (not client!) ip address. > >>> > >>> So if we want some finer-grained interface then that's yet to be > >>> designed. > >>> > >>> > >> Sorry, I guess that I was remembering incorrectly. I was > >> thinking that she was looking for something like the clearlocks > >> functionality so that file systems could be migrated around > >> cleanly. > >> > > > > That's what she was working on (and we merged), yes. > > > > But it doesn't help clear just the set of locks held by a single client. > > > > > >> It seems for this situation, we could use this sort of variation. > >> > > > > I'm losing track of what those two "this"'s refer to! > > > > Sorry -- :-) > > For the situation of needing to clear locks belonging to long > dead and not returning clients, we could use a variation of > Wendy's proposal which works using the client IP as the key. Wouldn't this be pretty easy to do with a user space tool that just calls lockd's SM_NOTIFY procedure? Sure, it's a private interface (as far as what proc # - but it's pretty well known that lockd always provides SM_NOTIFY on the same proc #), but there's no real need to add a new kernel interface unless we want to generalize the clearlocks interface. The tool just needs to use loopback and a privileged port. Frank -- 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