diff options
Diffstat (limited to 'fs/jbd2/checkpoint.c')
-rw-r--r-- | fs/jbd2/checkpoint.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/jbd2/checkpoint.c b/fs/jbd2/checkpoint.c index 90d6091d7e18..9ffb19cf376b 100644 --- a/fs/jbd2/checkpoint.c +++ b/fs/jbd2/checkpoint.c | |||
@@ -285,9 +285,10 @@ restart: | |||
285 | if (unlikely(buffer_write_io_error(bh)) && !result) | 285 | if (unlikely(buffer_write_io_error(bh)) && !result) |
286 | result = -EIO; | 286 | result = -EIO; |
287 | BUFFER_TRACE(bh, "remove from checkpoint"); | 287 | BUFFER_TRACE(bh, "remove from checkpoint"); |
288 | __jbd2_journal_remove_checkpoint(jh); | 288 | if (__jbd2_journal_remove_checkpoint(jh)) |
289 | spin_unlock(&journal->j_list_lock); | 289 | /* The transaction was released; we're done */ |
290 | goto retry; | 290 | goto out; |
291 | continue; | ||
291 | } | 292 | } |
292 | /* | 293 | /* |
293 | * Important: we are about to write the buffer, and | 294 | * Important: we are about to write the buffer, and |