Re: [PATCH 01/23] ocfs2: Handle a symlink read error correctly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 = {
> 




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux