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