xfs: ignore discard return value

__blkdev_issue_discard() always returns 0, making all error checking
in XFS discard functions dead code.

Change xfs_discard_extents() return type to void, remove error variable,
error checking, and error logging for the __blkdev_issue_discard() call
in same function.

Update xfs_trim_perag_extents() and xfs_trim_rtgroup_extents() to
ignore the xfs_discard_extents() return value and error checking
code.

Update xfs_discard_rtdev_extents() to ignore __blkdev_issue_discard()
return value and error checking code.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chaitanya Kulkarni <ckulkarnilinux@gmail.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
Chaitanya Kulkarni 2025-11-24 15:48:06 -08:00 committed by Carlos Maiolino
parent 8f0b4cce44
commit 2145f447b7
2 changed files with 6 additions and 23 deletions

View File

@ -108,7 +108,7 @@ xfs_discard_endio(
* list. We plug and chain the bios so that we only need a single completion * list. We plug and chain the bios so that we only need a single completion
* call to clear all the busy extents once the discards are complete. * call to clear all the busy extents once the discards are complete.
*/ */
int void
xfs_discard_extents( xfs_discard_extents(
struct xfs_mount *mp, struct xfs_mount *mp,
struct xfs_busy_extents *extents) struct xfs_busy_extents *extents)
@ -116,7 +116,6 @@ xfs_discard_extents(
struct xfs_extent_busy *busyp; struct xfs_extent_busy *busyp;
struct bio *bio = NULL; struct bio *bio = NULL;
struct blk_plug plug; struct blk_plug plug;
int error = 0;
blk_start_plug(&plug); blk_start_plug(&plug);
list_for_each_entry(busyp, &extents->extent_list, list) { list_for_each_entry(busyp, &extents->extent_list, list) {
@ -126,18 +125,10 @@ xfs_discard_extents(
trace_xfs_discard_extent(xg, busyp->bno, busyp->length); trace_xfs_discard_extent(xg, busyp->bno, busyp->length);
error = __blkdev_issue_discard(btp->bt_bdev, __blkdev_issue_discard(btp->bt_bdev,
xfs_gbno_to_daddr(xg, busyp->bno), xfs_gbno_to_daddr(xg, busyp->bno),
XFS_FSB_TO_BB(mp, busyp->length), XFS_FSB_TO_BB(mp, busyp->length),
GFP_KERNEL, &bio); GFP_KERNEL, &bio);
if (error && error != -EOPNOTSUPP) {
xfs_info(mp,
"discard failed for extent [0x%llx,%u], error %d",
(unsigned long long)busyp->bno,
busyp->length,
error);
break;
}
} }
if (bio) { if (bio) {
@ -148,8 +139,6 @@ xfs_discard_extents(
xfs_discard_endio_work(&extents->endio_work); xfs_discard_endio_work(&extents->endio_work);
} }
blk_finish_plug(&plug); blk_finish_plug(&plug);
return error;
} }
/* /*
@ -385,9 +374,7 @@ xfs_trim_perag_extents(
* list after this function call, as it may have been freed by * list after this function call, as it may have been freed by
* the time control returns to us. * the time control returns to us.
*/ */
error = xfs_discard_extents(pag_mount(pag), extents); xfs_discard_extents(pag_mount(pag), extents);
if (error)
break;
if (xfs_trim_should_stop()) if (xfs_trim_should_stop())
break; break;
@ -496,12 +483,10 @@ xfs_discard_rtdev_extents(
trace_xfs_discard_rtextent(mp, busyp->bno, busyp->length); trace_xfs_discard_rtextent(mp, busyp->bno, busyp->length);
error = __blkdev_issue_discard(bdev, __blkdev_issue_discard(bdev,
xfs_rtb_to_daddr(mp, busyp->bno), xfs_rtb_to_daddr(mp, busyp->bno),
XFS_FSB_TO_BB(mp, busyp->length), XFS_FSB_TO_BB(mp, busyp->length),
GFP_NOFS, &bio); GFP_NOFS, &bio);
if (error)
break;
} }
xfs_discard_free_rtdev_extents(tr); xfs_discard_free_rtdev_extents(tr);
@ -741,9 +726,7 @@ xfs_trim_rtgroup_extents(
* list after this function call, as it may have been freed by * list after this function call, as it may have been freed by
* the time control returns to us. * the time control returns to us.
*/ */
error = xfs_discard_extents(rtg_mount(rtg), tr.extents); xfs_discard_extents(rtg_mount(rtg), tr.extents);
if (error)
break;
low = tr.restart_rtx; low = tr.restart_rtx;
} while (!xfs_trim_should_stop() && low <= high); } while (!xfs_trim_should_stop() && low <= high);

View File

@ -6,7 +6,7 @@ struct fstrim_range;
struct xfs_mount; struct xfs_mount;
struct xfs_busy_extents; struct xfs_busy_extents;
int xfs_discard_extents(struct xfs_mount *mp, struct xfs_busy_extents *busy); void xfs_discard_extents(struct xfs_mount *mp, struct xfs_busy_extents *busy);
int xfs_ioc_trim(struct xfs_mount *mp, struct fstrim_range __user *fstrim); int xfs_ioc_trim(struct xfs_mount *mp, struct fstrim_range __user *fstrim);
#endif /* XFS_DISCARD_H */ #endif /* XFS_DISCARD_H */