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>