Subject: Re: Pending entries support for fileassoc(9)
To: Andrew Doran <ad@netbsd.org>
From: Brett Lymn <blymn@baesystems.com.au>
List: tech-kern
Date: 12/05/2007 10:15:48
On Tue, Dec 04, 2007 at 10:23:51PM +0000, Andrew Doran wrote:
> 
> - What is the concurrency strategy (e.g. locking)?
> 

Locking would be good here and, tagentially, in Veriexec too.

 1) Add a lock so we can lock the fileassoc_pending list for
 read/write both when adding and when traversing in
 fileassoc_mount_notify()

 2) I have not looked closely but if it is not already locked, lock
 the vnode of the mount point so that no other operations can happen
 while resolving the pending fileassoc entries.

Also, it looks like there is a bit of a race/hole when adding entries,
if the file system is already mounted and for some silly reason
fileassoc_add_pending() is called with a filename on that mounted
system then it will sit in the pending list forever - there probably
should be a check to see if the filesystem is already mounted prior to
adding the entry to the list.

-- 
Brett Lymn
"Warning:
The information contained in this email and any attached files is
confidential to BAE Systems Australia. If you are not the intended
recipient, any use, disclosure or copying of this email or any
attachments is expressly prohibited.  If you have received this email
in error, please notify us immediately. VIRUS: Every care has been
taken to ensure this email and its attachments are virus free,
however, any loss or damage incurred in using this email is not the
sender's responsibility.  It is your responsibility to ensure virus
checks are completed before installing any data sent in this email to
your computer."