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