On Sat, Dec 14, 2024 at 08:03:30PM +0800, Joseph Qi wrote: > 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. Hm? This is a bugfix; it should be as small as reasonable. If you want the code to be moved around, that should be left to a later patch. > 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 = { >