On 12/01/10 19:30, Kirk McKusick wrote:

 [ .. snip .. ]

> 
> Thanks all: Garrett for the report, Peter for the way to reproduce
> the problem, and Kostik for a fix. I have copied Jeff so that he can
> confirm that Kostik's fix is the appropriate thing to do. And I will
> take a look at fsck to see if I can make it a bit more paranoid about
> removing .sujournal.
> 
>       Kirk McKusick

There's another case that SU+J fails and the patch has not yet been
committed .. specifically, when configure tries to do a directory rename
test .. as below ..

I am uncertain but it seems that 'dump -L' exhibits a similar behaviour
.. completely hung on me at 1am this morning :-(

        imb

-------- Original Message --------
Subject: Re: softupdate with journal panic
Date: Tue, 24 Aug 2010 00:12:57 +0300
From: Kostik Belousov <kostik...@gmail.com>
To: Peter Holm <p...@freebsd.org>
CC: Michael Butler <i...@protected-networks.net>,        Jeff Roberson
<jrober...@jroberson.net>, curr...@freebsd.org

On Sun, Aug 22, 2010 at 03:21:04PM +0200, Peter Holm wrote:
> On Sat, Aug 21, 2010 at 01:49:45PM -0400, Michael Butler wrote:
> > While updating sysutils/coreutils port on -current as of this morning
> > (SVN r211550), I noted a panic during the directory rename config test.
> >
>
> Your problem seems identical to this report:
>
>
http://docs.freebsd.org/cgi/mid.cgi?AANLkTinPjiOV21kDLZYV5WScrhLMN7DY8E8jVHWPU5mC
>
I believe that dotdotremref in this case is legitimately NULL. With this
assumption, the following patch would help.

*** src/sys/ufs/ffs/ffs_softdep.c~	Fri Aug 20 18:10:34 2010
--- src/sys/ufs/ffs/ffs_softdep.c	Mon Aug 23 22:14:48 2010
***************
*** 6770,6776 ****
  			mkdir->md_jaddref = NULL;
  			if (mkdir->md_state & MKDIR_PARENT) {
  				if (cancel_jaddref(jaddref, NULL,
! 				    &dirrem->dm_jwork) == 0) {
  					free_jremref(dotdotremref);
  					dotdotremref = NULL;
  				}
--- 6770,6777 ----
  			mkdir->md_jaddref = NULL;
  			if (mkdir->md_state & MKDIR_PARENT) {
  				if (cancel_jaddref(jaddref, NULL,
! 				    &dirrem->dm_jwork) == 0 &&
! 				    dotdotremref != NULL) {
  					free_jremref(dotdotremref);
  					dotdotremref = NULL;
  				}
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to