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>