cvs commit: src/sys/ufs/ffs ffs_softdep.c src/sys/ufs/ufs ufs_inode.c

Konstantin Belousov kib at FreeBSD.org
Fri Jun 22 13:22:37 UTC 2007


kib         2007-06-22 13:22:37 UTC

  FreeBSD src repository

  Modified files:
    sys/ufs/ffs          ffs_softdep.c 
    sys/ufs/ufs          ufs_inode.c 
  Log:
  Fix livelock that could occur when snapshoting UFS with quotas, where
  some quota limit was exceeded. Sequence of UFS_VALLOC()/UFS_VFREE()
  call there could cause inodeblock to have both freefile and inodedep
  dependencies without any inode in the block being marked for write.
  Then, softdep_check_suspend() would return EAGAIN forewer.
  
  Force write of inodeblock with allocated freefile softdependency by
  setting IN_MODIFIED flag in softdep_freefile and unconditionally calling
  UFS_UPDATE() in ufs_reclaim.
  
  Reported by:    kris
  Debug help and tested by:       Peter Holm
  Approved by:    re (kensmith)
  MFC after:      3 weeks
  
  Revision  Changes    Path
  1.211     +1 -0      src/sys/ufs/ffs/ffs_softdep.c
  1.69      +2 -3      src/sys/ufs/ufs/ufs_inode.c


More information about the cvs-src mailing list