aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Roberson <jeff@FreeBSD.org>2010-04-28 07:57:37 +0000
committerJeff Roberson <jeff@FreeBSD.org>2010-04-28 07:57:37 +0000
commit2bd20091e47c9bb7c4d9ae3d4611da6dbf2a406f (patch)
treef416e57e6e8c016a075d9a833551d1c356edbb55
parent3b32573a9fe54b545b392061f75d9f47fdefa03c (diff)
downloadsrc-2bd20091e47c9bb7c4d9ae3d4611da6dbf2a406f.tar.gz
src-2bd20091e47c9bb7c4d9ae3d4611da6dbf2a406f.zip
- When canceling jaddrefs they may not yet be in the journal if this is via
a revert call. In this case don't attempt to remove something that has not yet been added. Otherwise this jaddref must hang around to prevent the bitmap write as normal.
Notes
Notes: svn path=/head/; revision=207310
-rw-r--r--sys/ufs/ffs/ffs_softdep.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index b08e7c299d47..b05339b936ca 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -3504,7 +3504,8 @@ cancel_jaddref(jaddref, inodedep, wkhd)
WORKLIST_INSERT(wkhd, &jsegdep->jd_list);
} else {
free_jsegdep(jsegdep);
- remove_from_journal(&jaddref->ja_list);
+ if (jaddref->ja_state & DEPCOMPLETE)
+ remove_from_journal(&jaddref->ja_list);
}
/*
* Leave NEWBLOCK jaddrefs on the inodedep so handle_workitem_remove