aboutsummaryrefslogtreecommitdiff
path: root/sys/ufs
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 /sys/ufs
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
Diffstat (limited to 'sys/ufs')
-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