diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c
index 9dfdf010f1df77735b560ad6e64cb3665512c739..3eec82d32fd4c6886fdf823e7d3690ca2e665162 100644
--- a/fs/jbd2/transaction.c
+++ b/fs/jbd2/transaction.c
@@ -922,8 +922,8 @@ int jbd2_journal_get_create_access(handle_t *handle, struct buffer_head *bh)
 	 */
 	JBUFFER_TRACE(jh, "cancelling revoke");
 	jbd2_journal_cancel_revoke(handle, jh);
-	jbd2_journal_put_journal_head(jh);
 out:
+	jbd2_journal_put_journal_head(jh);
 	return err;
 }