cvs commit: src/sys/fs/fdescfs fdesc.h fdesc_vfsops.c
fdesc_vnops.c
Hartmut Brandt
hartmut.brandt at dlr.de
Sun May 25 18:28:44 UTC 2008
Roman Divacky wrote:
> On Sat, May 24, 2008 at 02:51:30PM +0000, Ulf Lilleengen wrote:
>> lulf 2008-05-24 14:51:30 UTC
>>
>> FreeBSD src repository
>>
>> Modified files:
>> sys/fs/fdescfs fdesc.h fdesc_vfsops.c fdesc_vnops.c
>> Log:
>> - Add locking to all filesystem operations in fdescfs and flag it as MPSAFE.
>> - Use proper synhronization primitives to protect the internal fdesc node cache
>> used in fdescfs.
>> - Properly initialize and uninitalize hash.
>> - Remove unused functions.
>>
>> Since fdescfs might recurse on itself, adding proper locking to it needed some
>> tricky workarounds in some parts to make it work. For instance, a descriptor in
>> fdescfs could refer to an open descriptor to itself, thus forcing the thread to
>> recurse on vnode locks. Because of this, other race conditions also had to be
>> fixed.
>>
>> Tested by: pho
>> Reviewed by: kib (mentor)
>> Approved by: kib (mentor)
>
> + LIST_FOREACH(fd2, fc, fd_hash) {
> + if (fd == fd2) {
> + LIST_REMOVE(fd, fd_hash);
> + break;
> + }
> + }
>
> shouldn't you use LIST_FOREACH_SAFE here?
Only of you continue going through the list.
harti
More information about the cvs-src
mailing list