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