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]"

Reply via email to