Message ID | 20200620061948.2049579-1-yi.zhang@huawei.com |
---|---|
State | Accepted |
Headers | show |
Series | jbd2: add the missing unlock_buffer() in the error path of jbd2_write_superblock() | expand |
On 6/20/20 11:49 AM, zhangyi (F) wrote: > jbd2_write_superblock() is under the buffer lock of journal superblock > before ending that superblock write, so add a missing unlock_buffer() in > in the error path before submitting buffer. > > Fixes: 742b06b5628f ("jbd2: check superblock mapped prior to committing") > Signed-off-by: zhangyi (F) <yi.zhang@huawei.com> > Cc: stable@kernel.org LGTM, feel free to add Reviewed-by: Ritesh Harjani <riteshh@linux.ibm.com> > --- > fs/jbd2/journal.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c > index a49d0e670ddf..55c4ec4edf96 100644 > --- a/fs/jbd2/journal.c > +++ b/fs/jbd2/journal.c > @@ -1366,8 +1366,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)) >
On Sat, Jun 20, 2020 at 02:19:48PM +0800, zhangyi (F) wrote: > jbd2_write_superblock() is under the buffer lock of journal superblock > before ending that superblock write, so add a missing unlock_buffer() in > in the error path before submitting buffer. > > Fixes: 742b06b5628f ("jbd2: check superblock mapped prior to committing") > Signed-off-by: zhangyi (F) <yi.zhang@huawei.com> > Cc: stable@kernel.org Thanks, applied. - Ted
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index a49d0e670ddf..55c4ec4edf96 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -1366,8 +1366,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))
jbd2_write_superblock() is under the buffer lock of journal superblock before ending that superblock write, so add a missing unlock_buffer() in in the error path before submitting buffer. Fixes: 742b06b5628f ("jbd2: check superblock mapped prior to committing") Signed-off-by: zhangyi (F) <yi.zhang@huawei.com> Cc: stable@kernel.org --- fs/jbd2/journal.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)