Date: Mon, 18 Sep 2006 13:23:08 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/fs/devfs devfs.h devfs_devs.c devfs_vfsops.c devfs_vnops.c Message-ID: <200609181323.k8IDN8je097670@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
kib 2006-09-18 13:23:08 UTC
FreeBSD src repository
Modified files:
sys/fs/devfs devfs.h devfs_devs.c devfs_vfsops.c
devfs_vnops.c
Log:
Resolve the devfs deadlock caused by LOR between devfs_mount->dm_lock and
vnode lock in devfs_allocv. Do this by temporary dropping dm_lock around
vnode locking.
For safe operation, add hold counters for both devfs_mount and devfs_dirent,
and DE_DOOMED flag for devfs_dirent. The facilities allow to continue after
dropping of the dm_lock, by making sure that referenced memory does not
disappear.
Reviewed by: tegge
Tested by: kris
Approved by: kan (mentor)
PR: kern/102335
Revision Changes Path
1.30 +11 -0 src/sys/fs/devfs/devfs.h
1.47 +12 -1 src/sys/fs/devfs/devfs_devs.c
1.51 +20 -4 src/sys/fs/devfs/devfs_vfsops.c
1.134 +70 -11 src/sys/fs/devfs/devfs_vnops.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200609181323.k8IDN8je097670>
