From owner-freebsd-current@FreeBSD.ORG Wed Jul 15 16:13:55 2009 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF5B3106564A for ; Wed, 15 Jul 2009 16:13:55 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-annu.mail.uoguelph.ca (esa-annu.mail.uoguelph.ca [131.104.91.36]) by mx1.freebsd.org (Postfix) with ESMTP id 842448FC08 for ; Wed, 15 Jul 2009 16:13:55 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjMFAK+cXUqDaFvI/2dsb2JhbACPFAHDT4QJBQ X-IronPort-AV: E=Sophos;i="4.42,405,1243828800"; d="scan'208";a="39444979" Received: from darling.cs.uoguelph.ca ([131.104.91.200]) by esa-annu-pri.mail.uoguelph.ca with ESMTP; 15 Jul 2009 12:13:54 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by darling.cs.uoguelph.ca (Postfix) with ESMTP id 42A2F9400E6 for ; Wed, 15 Jul 2009 12:13:54 -0400 (EDT) X-Virus-Scanned: amavisd-new at darling.cs.uoguelph.ca Received: from darling.cs.uoguelph.ca ([127.0.0.1]) by localhost (darling.cs.uoguelph.ca [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XSESCA-Gliv0 for ; Wed, 15 Jul 2009 12:13:45 -0400 (EDT) Received: from muncher.cs.uoguelph.ca (muncher.cs.uoguelph.ca [131.104.91.102]) by darling.cs.uoguelph.ca (Postfix) with ESMTP id 9B9849400D7 for ; Wed, 15 Jul 2009 12:13:31 -0400 (EDT) Received: from localhost (rmacklem@localhost) by muncher.cs.uoguelph.ca (8.11.7p3+Sun/8.11.6) with ESMTP id n6FGGRG15576 for ; Wed, 15 Jul 2009 12:16:27 -0400 (EDT) X-Authentication-Warning: muncher.cs.uoguelph.ca: rmacklem owned process doing -bs Date: Wed, 15 Jul 2009 12:16:27 -0400 (EDT) From: Rick Macklem X-X-Sender: rmacklem@muncher.cs.uoguelph.ca To: freebsd-current@freebsd.org Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Subject: help w.r.t. vfs_event_signal(..VQ_NOTRESPLOCK) in nlm X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jul 2009 16:13:56 -0000 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