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?
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"