help w.r.t. vfs_event_signal(..VQ_NOTRESPLOCK) in nlm

Rick Macklem rmacklem at uoguelph.ca
Wed Jul 15 16:13:56 UTC 2009


Hi,

I'm trying to fix a problem in nlm_advlock.c that causes crashes
during forced dismounts. The reason for the crash is obvious, but
a correct fix not so much so.

The crashes occur because nlm_down() and nlm_up() assume that the
mount point structure still exists, when it might not. The part
that I don't understand is that they do the following:
 	vfs_event_signal(&nmp->nm_mountp->mnt_stat.f_fsid,
 	    VQ_NOTRESPLOCK, 0);
once for each cycle of down/up, using a per-mountpoint flag. It's
the per-mountpoint flag that you don't actually have access to.

So, does anyone happen to know what the above does and whether it
has to happen once/mountpoint OR would once for all mountpoints be
sufficient? (Although fsid is the first argument, it appears that
it isn't actually used.)

Thanks in adavnce for any help, rick



More information about the freebsd-current mailing list