diff options
author | Jeff Roberson <jeff@FreeBSD.org> | 2010-04-28 07:57:37 +0000 |
---|---|---|
committer | Jeff Roberson <jeff@FreeBSD.org> | 2010-04-28 07:57:37 +0000 |
commit | 2bd20091e47c9bb7c4d9ae3d4611da6dbf2a406f (patch) | |
tree | f416e57e6e8c016a075d9a833551d1c356edbb55 | |
parent | 3b32573a9fe54b545b392061f75d9f47fdefa03c (diff) | |
download | src-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.c | 3 |
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 |