cvs commit: src/sys/fs/devfs devfs.h devfs_devs.c devfs_vfsops.c
devfs_vnops.c
Konstantin Belousov
kib at FreeBSD.org
Mon Sep 18 06:23:09 PDT 2006
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
More information about the cvs-src
mailing list