On Sun, Jan 22, 2012 at 03:48:51AM +0000, Mindaugas Rasiukevicius wrote: > Module Name: src > Committed By: rmind > Date: Sun Jan 22 03:48:51 UTC 2012 > > Modified Files: > src/sys/kern: kern_fileassoc.c > > Log Message: > fileassoc_file_delete: pre-check whether fileassoc was used and thus avoid > acquiring kernel-lock, which damages sys_unlink() performance.
Erm... looking at the file the locking in there looks decidedly dubious. 1) There doesn't seem to be any locking on the hash table. 2) It isn't clear why the KERNEL_LOCK was acquired in one specific path. 3) If fileassoc_file_delete() is expected to remove all references for a vnode, something external must have forced the state of the vnode. (otherwise the stuff might be added - inc. global init - while this code is being called. OTOH I've actually NFI what the code in this file is for! David -- David Laight: da...@l8s.co.uk