file locking.

John Baldwin jhb at freebsd.org
Thu Aug 16 14:57:57 UTC 2007


On Thursday 16 August 2007 03:01:18 am Jeff Roberson wrote:
> I have been looking at file locking for 8.0 and have come up with a way to 
> completely eliminate the file lock, reduce the size of struct file by 
> ~4 pointers (22%), remove the global list of files and associated lock, 
> and restrict the scope of unp_gc while removing several race conditions.

I like finit().  I would maybe change socketpair() to pass so1 and so2 to 
finit() rather than setting f_data twice.

Did you consider using refcount_* for f_count rather than using the atomic 
operations directly?

It appears you never call unp_discard() and thus 'closef()' on the sockets in 
unp_gc() now.  Perhaps the fdrop()'s in the end of the loop should be 
unp_discard()'s instead?

Also, it's a bit of a shame to lose 'show files' from ddb.

-- 
John Baldwin


More information about the freebsd-arch mailing list