All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] zloop: print device that had errors
@ 2026-10-19 15:09 Johannes Thumshirn
  2026-10-19 15:19 ` Damien Le Moal
  2026-10-19 19:13 ` Jens Axboe
  0 siblings, 2 replies; 4+ messages in thread
From: Johannes Thumshirn @ 2026-10-19 15:09 UTC (permalink / raw)
  To: axboe@kernel.dk
  Cc: linux-block, Christoph Hellwig, Damien Le Moal,
	Johannes Thumshirn

When testing zoned filesystems that span multiple zloop drives it can be
difficult to figure out which devices access caused an error.

Prefix the error messages where we have the disk available with the disk
name.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
---
Changes to v1:
- Based on for-7.4/block
- Add reviews

 drivers/block/zloop.c | 37 +++++++++++++++++++++----------------
 1 file changed, 21 insertions(+), 16 deletions(-)

diff --git a/drivers/block/zloop.c b/drivers/block/zloop.c
index 509d9727835d..73d9949d01e0 100644
--- a/drivers/block/zloop.c
+++ b/drivers/block/zloop.c
@@ -318,22 +318,23 @@ static int zloop_update_seq_zone(struct zloop_device *zlo, unsigned int zone_no)
 
 	ret = vfs_getattr(&zone->file->f_path, &stat, STATX_SIZE, 0);
 	if (ret < 0) {
-		pr_err("Failed to get zone %u file stat (err=%d)\n",
-		       zone_no, ret);
+		pr_err("%pg: Failed to get zone %u file stat (err=%d)\n",
+		       zlo->disk->part0, zone_no, ret);
 		set_bit(ZLOOP_ZONE_SEQ_ERROR, &zone->flags);
 		return ret;
 	}
 
 	file_sectors = stat.size >> SECTOR_SHIFT;
 	if (file_sectors > zlo->zone_capacity) {
-		pr_err("Zone %u file too large (%llu sectors > %llu)\n",
-		       zone_no, file_sectors, zlo->zone_capacity);
+		pr_err("%pg: Zone %u file too large (%llu sectors > %llu)\n",
+		       zlo->disk->part0, zone_no, file_sectors,
+		       zlo->zone_capacity);
 		return -EINVAL;
 	}
 
 	if (!IS_ALIGNED(stat.size, zlo->block_size)) {
-		pr_err("Zone %u file size (%llu) not aligned to block size %u\n",
-		       zone_no, stat.size, zlo->block_size);
+		pr_err("%pg: Zone %u file size (%llu) not aligned to block size %u\n",
+		       zlo->disk->part0, zone_no, stat.size, zlo->block_size);
 		return -EINVAL;
 	}
 
@@ -604,12 +605,14 @@ static int zloop_seq_write_prep(struct zloop_cmd *cmd)
 	} else {
 		if (cmd->sector != zone->wp) {
 			if (zone->wp == ULLONG_MAX)
-				pr_err("Zone %u: write to %s zone: sect %llu\n",
-				       zone_no, blk_zone_cond_str(zone->cond),
+				pr_err("%pg: Zone %u: write to %s zone: sect %llu\n",
+				       zlo->disk->part0, zone_no,
+				       blk_zone_cond_str(zone->cond),
 				       cmd->sector);
 			else
-				pr_err("Zone %u: unaligned write: sect %llu, wp %llu\n",
-				       zone_no, cmd->sector, zone->wp);
+				pr_err("%pg: Zone %u: unaligned write: sect %llu, wp %llu\n",
+				       zlo->disk->part0, zone_no, cmd->sector,
+				       zone->wp);
 			ret = -EIO;
 			goto out_unlock;
 		}
@@ -816,8 +819,9 @@ static void zloop_complete_rq(struct request *rq)
 	switch (req_op(rq)) {
 	case REQ_OP_READ:
 		if (cmd->ret < 0)
-			pr_err("Zone %u: failed read sector %llu, %llu sectors\n",
-			       zone_no, cmd->sector, cmd->nr_sectors);
+			pr_err("%pg: Zone %u: failed read sector %llu, %llu sectors\n",
+			       zlo->disk->part0, zone_no, cmd->sector,
+			       cmd->nr_sectors);
 
 		if (cmd->ret >= 0 && cmd->ret != blk_rq_bytes(rq)) {
 			/* short read */
@@ -830,14 +834,15 @@ static void zloop_complete_rq(struct request *rq)
 	case REQ_OP_WRITE:
 	case REQ_OP_ZONE_APPEND:
 		if (cmd->ret < 0)
-			pr_err("Zone %u: failed %swrite sector %llu, %llu sectors\n",
-			       zone_no,
+			pr_err("%pg: Zone %u: failed %swrite sector %llu, %llu sectors\n",
+			       zlo->disk->part0, zone_no,
 			       req_op(rq) == REQ_OP_WRITE ? "" : "append ",
 			       cmd->sector, cmd->nr_sectors);
 
 		if (cmd->ret >= 0 && cmd->ret != blk_rq_bytes(rq)) {
-			pr_err("Zone %u: partial write %ld/%u B\n",
-			       zone_no, cmd->ret, blk_rq_bytes(rq));
+			pr_err("%pg: Zone %u: partial write %ld/%u B\n",
+			       zlo->disk->part0, zone_no, cmd->ret,
+			       blk_rq_bytes(rq));
 			cmd->ret = -EIO;
 		}
 

base-commit: afc9cde716b29ce814798d649a95f9128ba42b43
-- 
2.56.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] zloop: print device that had errors
  2026-10-19 15:09 [PATCH v2] zloop: print device that had errors Johannes Thumshirn
@ 2026-10-19 15:19 ` Damien Le Moal
  2026-10-19 15:20   ` Johannes Thumshirn
  2026-10-19 19:13 ` Jens Axboe
  1 sibling, 1 reply; 4+ messages in thread
From: Damien Le Moal @ 2026-10-19 15:19 UTC (permalink / raw)
  To: Johannes Thumshirn, axboe@kernel.dk; +Cc: linux-block, Christoph Hellwig

On 2026/10/19 17:09, Johannes Thumshirn wrote:
> When testing zoned filesystems that span multiple zloop drives it can be
> difficult to figure out which devices access caused an error.
> 
> Prefix the error messages where we have the disk available with the disk
> name.
> 
> Reviewed-by: Christoph Hellwig <hch@lst.de>
> Reviewed-by: Reviewed-by: Damien Le Moal <dlemoal@kernel.org>

A single Reviewed-by tag is enough :)

> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
> ---
> Changes to v1:
> - Based on for-7.4/block
> - Add reviews
> 
>  drivers/block/zloop.c | 37 +++++++++++++++++++++----------------
>  1 file changed, 21 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/block/zloop.c b/drivers/block/zloop.c
> index 509d9727835d..73d9949d01e0 100644
> --- a/drivers/block/zloop.c
> +++ b/drivers/block/zloop.c
> @@ -318,22 +318,23 @@ static int zloop_update_seq_zone(struct zloop_device *zlo, unsigned int zone_no)
>  
>  	ret = vfs_getattr(&zone->file->f_path, &stat, STATX_SIZE, 0);
>  	if (ret < 0) {
> -		pr_err("Failed to get zone %u file stat (err=%d)\n",
> -		       zone_no, ret);
> +		pr_err("%pg: Failed to get zone %u file stat (err=%d)\n",
> +		       zlo->disk->part0, zone_no, ret);
>  		set_bit(ZLOOP_ZONE_SEQ_ERROR, &zone->flags);
>  		return ret;
>  	}
>  
>  	file_sectors = stat.size >> SECTOR_SHIFT;
>  	if (file_sectors > zlo->zone_capacity) {
> -		pr_err("Zone %u file too large (%llu sectors > %llu)\n",
> -		       zone_no, file_sectors, zlo->zone_capacity);
> +		pr_err("%pg: Zone %u file too large (%llu sectors > %llu)\n",
> +		       zlo->disk->part0, zone_no, file_sectors,
> +		       zlo->zone_capacity);
>  		return -EINVAL;
>  	}
>  
>  	if (!IS_ALIGNED(stat.size, zlo->block_size)) {
> -		pr_err("Zone %u file size (%llu) not aligned to block size %u\n",
> -		       zone_no, stat.size, zlo->block_size);
> +		pr_err("%pg: Zone %u file size (%llu) not aligned to block size %u\n",
> +		       zlo->disk->part0, zone_no, stat.size, zlo->block_size);
>  		return -EINVAL;
>  	}
>  
> @@ -604,12 +605,14 @@ static int zloop_seq_write_prep(struct zloop_cmd *cmd)
>  	} else {
>  		if (cmd->sector != zone->wp) {
>  			if (zone->wp == ULLONG_MAX)
> -				pr_err("Zone %u: write to %s zone: sect %llu\n",
> -				       zone_no, blk_zone_cond_str(zone->cond),
> +				pr_err("%pg: Zone %u: write to %s zone: sect %llu\n",
> +				       zlo->disk->part0, zone_no,
> +				       blk_zone_cond_str(zone->cond),
>  				       cmd->sector);
>  			else
> -				pr_err("Zone %u: unaligned write: sect %llu, wp %llu\n",
> -				       zone_no, cmd->sector, zone->wp);
> +				pr_err("%pg: Zone %u: unaligned write: sect %llu, wp %llu\n",
> +				       zlo->disk->part0, zone_no, cmd->sector,
> +				       zone->wp);
>  			ret = -EIO;
>  			goto out_unlock;
>  		}
> @@ -816,8 +819,9 @@ static void zloop_complete_rq(struct request *rq)
>  	switch (req_op(rq)) {
>  	case REQ_OP_READ:
>  		if (cmd->ret < 0)
> -			pr_err("Zone %u: failed read sector %llu, %llu sectors\n",
> -			       zone_no, cmd->sector, cmd->nr_sectors);
> +			pr_err("%pg: Zone %u: failed read sector %llu, %llu sectors\n",
> +			       zlo->disk->part0, zone_no, cmd->sector,
> +			       cmd->nr_sectors);
>  
>  		if (cmd->ret >= 0 && cmd->ret != blk_rq_bytes(rq)) {
>  			/* short read */
> @@ -830,14 +834,15 @@ static void zloop_complete_rq(struct request *rq)
>  	case REQ_OP_WRITE:
>  	case REQ_OP_ZONE_APPEND:
>  		if (cmd->ret < 0)
> -			pr_err("Zone %u: failed %swrite sector %llu, %llu sectors\n",
> -			       zone_no,
> +			pr_err("%pg: Zone %u: failed %swrite sector %llu, %llu sectors\n",
> +			       zlo->disk->part0, zone_no,
>  			       req_op(rq) == REQ_OP_WRITE ? "" : "append ",
>  			       cmd->sector, cmd->nr_sectors);
>  
>  		if (cmd->ret >= 0 && cmd->ret != blk_rq_bytes(rq)) {
> -			pr_err("Zone %u: partial write %ld/%u B\n",
> -			       zone_no, cmd->ret, blk_rq_bytes(rq));
> +			pr_err("%pg: Zone %u: partial write %ld/%u B\n",
> +			       zlo->disk->part0, zone_no, cmd->ret,
> +			       blk_rq_bytes(rq));
>  			cmd->ret = -EIO;
>  		}
>  
> 
> base-commit: afc9cde716b29ce814798d649a95f9128ba42b43


-- 
Damien Le Moal
Western Digital Research

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] zloop: print device that had errors
  2026-10-19 15:19 ` Damien Le Moal
@ 2026-10-19 15:20   ` Johannes Thumshirn
  0 siblings, 0 replies; 4+ messages in thread
From: Johannes Thumshirn @ 2026-10-19 15:20 UTC (permalink / raw)
  To: Damien Le Moal, axboe@kernel.dk; +Cc: linux-block, Christoph Hellwig

On 19.10.26 17:19, Damien Le Moal wrote:
> On 2026/10/19 17:09, Johannes Thumshirn wrote:
>> When testing zoned filesystems that span multiple zloop drives it can be
>> difficult to figure out which devices access caused an error.
>>
>> Prefix the error messages where we have the disk available with the disk
>> name.
>>
>> Reviewed-by: Christoph Hellwig <hch@lst.de>
>> Reviewed-by: Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
> 
> A single Reviewed-by tag is enough :)
Ah crap the joy of copy paste. Jens can you fix it up or should I resend?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2] zloop: print device that had errors
  2026-10-19 15:09 [PATCH v2] zloop: print device that had errors Johannes Thumshirn
  2026-10-19 15:19 ` Damien Le Moal
@ 2026-10-19 19:13 ` Jens Axboe
  1 sibling, 0 replies; 4+ messages in thread
From: Jens Axboe @ 2026-10-19 19:13 UTC (permalink / raw)
  To: Johannes Thumshirn; +Cc: linux-block, Christoph Hellwig, Damien Le Moal


On Mon, 19 Oct 2026 17:09:36 +0200, Johannes Thumshirn wrote:
> When testing zoned filesystems that span multiple zloop drives it can be
> difficult to figure out which devices access caused an error.
> 
> Prefix the error messages where we have the disk available with the disk
> name.
> 
> 
> [...]

Applied, thanks!

[1/1] zloop: print device that had errors
      commit: bdfc6433b2d9433edefa17c5c779fe658356bd3b

Best regards,
-- 
Jens Axboe




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-10-19 19:13 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-19 15:09 [PATCH v2] zloop: print device that had errors Johannes Thumshirn
2026-10-19 15:19 ` Damien Le Moal
2026-10-19 15:20   ` Johannes Thumshirn
2026-10-19 19:13 ` Jens Axboe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.