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

Reply via email to