On Sun, May 25, 2008 at 07:29:26PM +0200, 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?
No, because the break exits the loop. _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "[EMAIL PROTECTED]"