cvs commit: src/sys/fs/fdescfs fdesc.h fdesc_vfsops.c
fdesc_vnops.c
Roman Divacky
rdivacky at FreeBSD.org
Sun May 25 17:30:10 UTC 2008
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?
More information about the cvs-all
mailing list