Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Jun 2007 13:22:37 +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/ufs/ffs ffs_softdep.c src/sys/ufs/ufs ufs_inode.c
Message-ID:  <200706221322.l5MDMbZX063575@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200706221322.l5MDMbZX063575>