Re: linux-next: build failure after merge of the block tree

Stephen Rothwell
2021-02-02T03:17:22Z

[-- Attachment #1: Type: text/plain, Size: 3013 bytes --]

Hi all,

On Tue, 2 Feb 2021 13:57:14 +1100 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> After merging the block tree, today's linux-next build (powerpc
> ppc64_defconfig) failed like this:
>
> block/bio.c: In function 'bio_add_zone_append_page':
> block/bio.c:860:31: error: 'struct bio' has no member named 'bi_disk'
> 860 | struct request_queue *q = bio->bi_disk->queue;
> | ^~
>
> Caused by commit
>
> 309dca309fc3 ("block: store a block_device pointer in struct bio")
>
> interacting with commit
>
> 9f678097f3de ("block: add bio_add_zone_append_page")
>
> from the btrfs tree.
>
> I applied the following merge fix up for today.
>
> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Tue, 2 Feb 2021 13:54:29 +1100
> Subject: [PATCH] block: bio: fix up for bi_disk removal
>
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
> ---
> block/bio.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/block/bio.c b/block/bio.c
> index bf3ab1b5c844..e3b9d3e0a196 100644
> --- a/block/bio.c
> +++ b/block/bio.c
> @@ -857,7 +857,7 @@ EXPORT_SYMBOL(bio_add_pc_page);
> int bio_add_zone_append_page(struct bio *bio, struct page *page,
> unsigned int len, unsigned int offset)
> {
> - struct request_queue *q = bio->bi_disk->queue;
> + struct request_queue *q = bio->bi_bdev->bd_disk->queue;
> bool same_page = false;
>
> if (WARN_ON_ONCE(bio_op(bio) != REQ_OP_ZONE_APPEND))
> --
> 2.29.2

This then lead to the following in my x86_64 allmodconfig build:

fs/btrfs/zoned.c: In function 'btrfs_record_physical_zoned':
fs/btrfs/zoned.c:1286:21: error: 'struct bio' has no member named 'bi_disk'
1286 | ordered->disk = bio->bi_disk;
| ^~
fs/btrfs/zoned.c:1287:23: error: 'struct bio' has no member named 'bi_partno'
1287 | ordered->partno = bio->bi_partno;
| ^~

Do to the above block tree commit interacting with commit

bccc13e5fe0c ("btrfs: use ZONE_APPEND write for ZONED btrfs")

from the btrfs tree.

For which I applied the following merge fix patch:

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Tue, 2 Feb 2021 14:08:44 +1100
Subject: [PATCH] block: btrfs: another fix up for bi_disk removal

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
fs/btrfs/zoned.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index 334a54be587d..4829ffc5275b 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -1283,8 +1283,8 @@ void btrfs_record_physical_zoned(struct inode *inode, u64 file_offset,
return;

ordered->physical = physical;
- ordered->disk = bio->bi_disk;
- ordered->partno = bio->bi_partno;
+ ordered->disk = bio->bi_bdev->bd_disk;
+ ordered->partno = bio->bi_bdev->bd_partno;

btrfs_put_ordered_extent(ordered);
}
--
2.29.2

--
Cheers,
Stephen Rothwell

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]