Message ID | 20240402014651.13723-2-glass.su@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ocfs2 bugs fixes exposed by fstests | expand |
On 4/2/24 9:46 AM, Su Yue wrote: > ocfs2_dio_wr_get_block always returns -EIO in case of errors. > However, some programs expect right exit codes while doing dio. > For example, tools like fio treat -ENOSPC as expected code while > doing stress jobs. And quota tools expect -EDQUOT when disk quota > exceeds. > > -EIO is too strong return code in the dio path. > The caller of ocfs2_dio_wr_get_block is __blockdev_direct_IO which is > widely used and it handles error codes well. I have checked functions > called by ocfs2_dio_wr_get_block and their return codes look good and > clear. So I think it's safe to let ocfs2_dio_wr_get_block return real > error code. > > Signed-off-by: Su Yue <glass.su@suse.com> Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com> > --- > fs/ocfs2/aops.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c > index b82185075de7..f0467d3b3c88 100644 > --- a/fs/ocfs2/aops.c > +++ b/fs/ocfs2/aops.c > @@ -2283,8 +2283,6 @@ static int ocfs2_dio_wr_get_block(struct inode *inode, sector_t iblock, > ocfs2_inode_unlock(inode, 1); > brelse(di_bh); > out: > - if (ret < 0) > - ret = -EIO; > return ret; > } >
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index b82185075de7..f0467d3b3c88 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c @@ -2283,8 +2283,6 @@ static int ocfs2_dio_wr_get_block(struct inode *inode, sector_t iblock, ocfs2_inode_unlock(inode, 1); brelse(di_bh); out: - if (ret < 0) - ret = -EIO; return ret; }
ocfs2_dio_wr_get_block always returns -EIO in case of errors. However, some programs expect right exit codes while doing dio. For example, tools like fio treat -ENOSPC as expected code while doing stress jobs. And quota tools expect -EDQUOT when disk quota exceeds. -EIO is too strong return code in the dio path. The caller of ocfs2_dio_wr_get_block is __blockdev_direct_IO which is widely used and it handles error codes well. I have checked functions called by ocfs2_dio_wr_get_block and their return codes look good and clear. So I think it's safe to let ocfs2_dio_wr_get_block return real error code. Signed-off-by: Su Yue <glass.su@suse.com> --- fs/ocfs2/aops.c | 2 -- 1 file changed, 2 deletions(-)