diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index a15a22d20909..8a50722bca29 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -1370,8 +1370,10 @@ static int jbd2_write_superblock(journal_t *journal, int write_flags) int ret; /* Buffer got discarded which means block device got invalidated */ - if (!buffer_mapped(bh)) + if (!buffer_mapped(bh)) { + unlock_buffer(bh); return -EIO; + } trace_jbd2_write_superblock(journal, write_flags); if (!(journal->j_flags & JBD2_BARRIER))