Date: Fri, 11 Apr 2008 09:48:12 +0000 (UTC) From: Jeff Roberson <jeff@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/ufs/ufs dirhash.h ufs_dirhash.c Message-ID: <200804110948.m3B9mCjB091438@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
jeff 2008-04-11 09:48:12 UTC
FreeBSD src repository
Modified files:
sys/ufs/ufs dirhash.h ufs_dirhash.c
Log:
- Use a lockmgr lock rather than a mtx to protect dirhash. This lock
may be held for the duration of the various dirhash operations which
avoids many complex unlock/lock/revalidate sequences.
- Permit shared locks on lookup. To protect the ip->i_dirhash pointer we
use the vnode interlock in the shared case. Callers holding the
exclusive vnode lock can run without fear of concurrent modification to
i_dirhash.
- Hold an exclusive dirhash lock when creating the dirhash structure for
the first time or when re-creating a dirhash structure which has been
recycled.
Tested by: kris, pho
Revision Changes Path
1.6 +2 -1 src/sys/ufs/ufs/dirhash.h
1.24 +289 -227 src/sys/ufs/ufs/ufs_dirhash.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804110948.m3B9mCjB091438>
