Date: Fri, 9 Nov 2012 04:04:25 +0000 (UTC) From: Jeff Roberson <jeff@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r242815 - head/sys/ufs/ffs Message-ID: <201211090404.qA944Pt4089675@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jeff Date: Fri Nov 9 04:04:25 2012 New Revision: 242815 URL: http://svnweb.freebsd.org/changeset/base/242815 Log: - Correct rev 242734, segments can sometimes get stuck. Be a bit more defensive with segment state. Reported by: b. f. <bf1783@googlemail.com> Modified: head/sys/ufs/ffs/ffs_softdep.c Modified: head/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- head/sys/ufs/ffs/ffs_softdep.c Fri Nov 9 01:51:06 2012 (r242814) +++ head/sys/ufs/ffs/ffs_softdep.c Fri Nov 9 04:04:25 2012 (r242815) @@ -4291,13 +4291,16 @@ free_jsegs(jblocks) jblocks->jb_oldestseg = jseg; return; } + if ((jseg->js_state & ALLCOMPLETE) != ALLCOMPLETE) + break; if (jseg->js_seq > jblocks->jb_oldestwrseq) break; /* * We can free jsegs that didn't write entries when * oldestwrseq == js_seq. */ - if (jseg->js_cnt != 0) + if (jseg->js_seq == jblocks->jb_oldestwrseq && + jseg->js_cnt != 0) break; free_jseg(jseg, jblocks); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201211090404.qA944Pt4089675>