On 2024/12/6 01:16, Matthew Wilcox (Oracle) wrote: > If we can't read the buffer, be sure to unlock the page before > returning. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > --- > fs/ocfs2/symlink.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/fs/ocfs2/symlink.c b/fs/ocfs2/symlink.c > index d4c5fdcfa1e4..f5cf2255dc09 100644 > --- a/fs/ocfs2/symlink.c > +++ b/fs/ocfs2/symlink.c > @@ -65,7 +65,7 @@ static int ocfs2_fast_symlink_read_folio(struct file *f, struct folio *folio) > Better to move calling ocfs2_read_inode_block() here. Thanks, Joseph > if (status < 0) { > mlog_errno(status); > - return status; > + goto out; > } > > fe = (struct ocfs2_dinode *) bh->b_data; > @@ -76,9 +76,10 @@ static int ocfs2_fast_symlink_read_folio(struct file *f, struct folio *folio) > memcpy(kaddr, link, len + 1); > kunmap_atomic(kaddr); > SetPageUptodate(page); > +out: > unlock_page(page); > brelse(bh); > - return 0; > + return status; > } > > const struct address_space_operations ocfs2_fast_symlink_aops = {