mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 22:21:42 +00:00
xfs: simplify xfs_ioend_can_merge
Compare the block layer status directly instead of converting it to an errno first. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
parent
7dbae9fbde
commit
fe64e0d26b
@ -285,13 +285,9 @@ done:
|
||||
static bool
|
||||
xfs_ioend_can_merge(
|
||||
struct xfs_ioend *ioend,
|
||||
int ioend_error,
|
||||
struct xfs_ioend *next)
|
||||
{
|
||||
int next_error;
|
||||
|
||||
next_error = blk_status_to_errno(next->io_bio->bi_status);
|
||||
if (ioend_error != next_error)
|
||||
if (ioend->io_bio->bi_status != next->io_bio->bi_status)
|
||||
return false;
|
||||
if ((ioend->io_fork == XFS_COW_FORK) ^ (next->io_fork == XFS_COW_FORK))
|
||||
return false;
|
||||
@ -329,17 +325,11 @@ xfs_ioend_try_merge(
|
||||
struct list_head *more_ioends)
|
||||
{
|
||||
struct xfs_ioend *next_ioend;
|
||||
int ioend_error;
|
||||
|
||||
if (list_empty(more_ioends))
|
||||
return;
|
||||
|
||||
ioend_error = blk_status_to_errno(ioend->io_bio->bi_status);
|
||||
|
||||
while (!list_empty(more_ioends)) {
|
||||
next_ioend = list_first_entry(more_ioends, struct xfs_ioend,
|
||||
io_list);
|
||||
if (!xfs_ioend_can_merge(ioend, ioend_error, next_ioend))
|
||||
if (!xfs_ioend_can_merge(ioend, next_ioend))
|
||||
break;
|
||||
list_move_tail(&next_ioend->io_list, &ioend->io_list);
|
||||
ioend->io_size += next_ioend->io_size;
|
||||
|
Loading…
Reference in New Issue
Block a user