2023-09-28 04:07:58

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: build failure after merge of the vfs-brauner tree

Hi all,

After merging the vfs-brauner tree, today's linux-next build (x86_64
allmodconfig) failed like this:

fs/bcachefs/super-io.c: In function 'bch2_free_super':
fs/bcachefs/super-io.c:166:17: error: implicit declaration of function 'blkdev_put'; did you mean 'bdi_put'? [-Werror=implicit-function-declaration]
166 | blkdev_put(sb->bdev, sb->holder);
| ^~~~~~~~~~
| bdi_put
fs/bcachefs/super-io.c: In function 'bch2_read_super':
fs/bcachefs/super-io.c:687:20: error: implicit declaration of function 'blkdev_get_by_path'; did you mean 'bdev_open_by_path'? [-Werror=implicit-function-declaration]
687 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
| ^~~~~~~~~~~~~~~~~~
| bdev_open_by_path
fs/bcachefs/super-io.c:687:18: error: assignment to 'struct block_device *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
687 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
| ^
fs/bcachefs/super-io.c:693:26: error: assignment to 'struct block_device *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
693 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
| ^
cc1: all warnings being treated as errors

Caused by commit

953863a5a2ff ("block: Remove blkdev_get_by_*() functions")

interacting with commit(s) from the bcachefs tree.

I would have reverted that commit for today, except I used the old
vfs-brauner tree due to another build failure. Can we just delay this
one commit until after bcachefs has been converted (and any other
references that may be added are fixed)?

--
Cheers,
Stephen Rothwell


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2023-10-02 11:47:48

by Jan Kara

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the vfs-brauner tree

Hi!

On Thu 28-09-23 10:54:43, Stephen Rothwell wrote:
> After merging the vfs-brauner tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
>
> fs/bcachefs/super-io.c: In function 'bch2_free_super':
> fs/bcachefs/super-io.c:166:17: error: implicit declaration of function 'blkdev_put'; did you mean 'bdi_put'? [-Werror=implicit-function-declaration]
> 166 | blkdev_put(sb->bdev, sb->holder);
> | ^~~~~~~~~~
> | bdi_put
> fs/bcachefs/super-io.c: In function 'bch2_read_super':
> fs/bcachefs/super-io.c:687:20: error: implicit declaration of function 'blkdev_get_by_path'; did you mean 'bdev_open_by_path'? [-Werror=implicit-function-declaration]
> 687 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> | ^~~~~~~~~~~~~~~~~~
> | bdev_open_by_path
> fs/bcachefs/super-io.c:687:18: error: assignment to 'struct block_device *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
> 687 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> | ^
> fs/bcachefs/super-io.c:693:26: error: assignment to 'struct block_device *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
> 693 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> | ^
> cc1: all warnings being treated as errors
>
> Caused by commit
>
> 953863a5a2ff ("block: Remove blkdev_get_by_*() functions")
>
> interacting with commit(s) from the bcachefs tree.
>
> I would have reverted that commit for today, except I used the old
> vfs-brauner tree due to another build failure. Can we just delay this
> one commit until after bcachefs has been converted (and any other
> references that may be added are fixed)?

Yeah, I guess removing the final commit is the easiest solution at this
point. It complicates a bit the series to disallow writing to mounted block
devices which bases on this - either I have to pospone that to the next
cycle after we convert bcachefs or I have to find a way for the old
blkdev_get_by_path() API and the new functionality to coexist. I'll think
about that.

Honza
--
Jan Kara <[email protected]>
SUSE Labs, CR

2023-10-02 21:58:13

by Jan Kara

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the vfs-brauner tree

On Mon 02-10-23 13:21:42, Jan Kara wrote:
> Hi!
>
> On Thu 28-09-23 10:54:43, Stephen Rothwell wrote:
> > After merging the vfs-brauner tree, today's linux-next build (x86_64
> > allmodconfig) failed like this:
> >
> > fs/bcachefs/super-io.c: In function 'bch2_free_super':
> > fs/bcachefs/super-io.c:166:17: error: implicit declaration of function 'blkdev_put'; did you mean 'bdi_put'? [-Werror=implicit-function-declaration]
> > 166 | blkdev_put(sb->bdev, sb->holder);
> > | ^~~~~~~~~~
> > | bdi_put
> > fs/bcachefs/super-io.c: In function 'bch2_read_super':
> > fs/bcachefs/super-io.c:687:20: error: implicit declaration of function 'blkdev_get_by_path'; did you mean 'bdev_open_by_path'? [-Werror=implicit-function-declaration]
> > 687 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> > | ^~~~~~~~~~~~~~~~~~
> > | bdev_open_by_path
> > fs/bcachefs/super-io.c:687:18: error: assignment to 'struct block_device *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
> > 687 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> > | ^
> > fs/bcachefs/super-io.c:693:26: error: assignment to 'struct block_device *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
> > 693 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> > | ^
> > cc1: all warnings being treated as errors
> >
> > Caused by commit
> >
> > 953863a5a2ff ("block: Remove blkdev_get_by_*() functions")
> >
> > interacting with commit(s) from the bcachefs tree.
> >
> > I would have reverted that commit for today, except I used the old
> > vfs-brauner tree due to another build failure. Can we just delay this
> > one commit until after bcachefs has been converted (and any other
> > references that may be added are fixed)?
>
> Yeah, I guess removing the final commit is the easiest solution at this
> point. It complicates a bit the series to disallow writing to mounted block
> devices which bases on this - either I have to pospone that to the next
> cycle after we convert bcachefs or I have to find a way for the old
> blkdev_get_by_path() API and the new functionality to coexist. I'll think
> about that.

Oh, and one more note - Christian is on vacation this week so Stephen please
just revert the commit in the linux-next until he returns and updates his
tree. Thanks!

Honza
--
Jan Kara <[email protected]>
SUSE Labs, CR

2023-10-03 13:28:23

by Kent Overstreet

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the vfs-brauner tree

On Mon, Oct 02, 2023 at 01:21:42PM +0200, Jan Kara wrote:
> Hi!
>
> On Thu 28-09-23 10:54:43, Stephen Rothwell wrote:
> > After merging the vfs-brauner tree, today's linux-next build (x86_64
> > allmodconfig) failed like this:
> >
> > fs/bcachefs/super-io.c: In function 'bch2_free_super':
> > fs/bcachefs/super-io.c:166:17: error: implicit declaration of function 'blkdev_put'; did you mean 'bdi_put'? [-Werror=implicit-function-declaration]
> > 166 | blkdev_put(sb->bdev, sb->holder);
> > | ^~~~~~~~~~
> > | bdi_put
> > fs/bcachefs/super-io.c: In function 'bch2_read_super':
> > fs/bcachefs/super-io.c:687:20: error: implicit declaration of function 'blkdev_get_by_path'; did you mean 'bdev_open_by_path'? [-Werror=implicit-function-declaration]
> > 687 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> > | ^~~~~~~~~~~~~~~~~~
> > | bdev_open_by_path
> > fs/bcachefs/super-io.c:687:18: error: assignment to 'struct block_device *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
> > 687 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> > | ^
> > fs/bcachefs/super-io.c:693:26: error: assignment to 'struct block_device *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
> > 693 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> > | ^
> > cc1: all warnings being treated as errors
> >
> > Caused by commit
> >
> > 953863a5a2ff ("block: Remove blkdev_get_by_*() functions")
> >
> > interacting with commit(s) from the bcachefs tree.
> >
> > I would have reverted that commit for today, except I used the old
> > vfs-brauner tree due to another build failure. Can we just delay this
> > one commit until after bcachefs has been converted (and any other
> > references that may be added are fixed)?
>
> Yeah, I guess removing the final commit is the easiest solution at this
> point. It complicates a bit the series to disallow writing to mounted block
> devices which bases on this - either I have to pospone that to the next
> cycle after we convert bcachefs or I have to find a way for the old
> blkdev_get_by_path() API and the new functionality to coexist. I'll think
> about that.

Jan, Christain - what do you need from me for the conversion?

2023-10-04 15:47:10

by Jan Kara

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the vfs-brauner tree

On Tue 03-10-23 09:27:11, Kent Overstreet wrote:
> On Mon, Oct 02, 2023 at 01:21:42PM +0200, Jan Kara wrote:
> > Hi!
> >
> > On Thu 28-09-23 10:54:43, Stephen Rothwell wrote:
> > > After merging the vfs-brauner tree, today's linux-next build (x86_64
> > > allmodconfig) failed like this:
> > >
> > > fs/bcachefs/super-io.c: In function 'bch2_free_super':
> > > fs/bcachefs/super-io.c:166:17: error: implicit declaration of function 'blkdev_put'; did you mean 'bdi_put'? [-Werror=implicit-function-declaration]
> > > 166 | blkdev_put(sb->bdev, sb->holder);
> > > | ^~~~~~~~~~
> > > | bdi_put
> > > fs/bcachefs/super-io.c: In function 'bch2_read_super':
> > > fs/bcachefs/super-io.c:687:20: error: implicit declaration of function 'blkdev_get_by_path'; did you mean 'bdev_open_by_path'? [-Werror=implicit-function-declaration]
> > > 687 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> > > | ^~~~~~~~~~~~~~~~~~
> > > | bdev_open_by_path
> > > fs/bcachefs/super-io.c:687:18: error: assignment to 'struct block_device *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
> > > 687 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> > > | ^
> > > fs/bcachefs/super-io.c:693:26: error: assignment to 'struct block_device *' from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
> > > 693 | sb->bdev = blkdev_get_by_path(path, sb->mode, sb->holder, &bch2_sb_handle_bdev_ops);
> > > | ^
> > > cc1: all warnings being treated as errors
> > >
> > > Caused by commit
> > >
> > > 953863a5a2ff ("block: Remove blkdev_get_by_*() functions")
> > >
> > > interacting with commit(s) from the bcachefs tree.
> > >
> > > I would have reverted that commit for today, except I used the old
> > > vfs-brauner tree due to another build failure. Can we just delay this
> > > one commit until after bcachefs has been converted (and any other
> > > references that may be added are fixed)?
> >
> > Yeah, I guess removing the final commit is the easiest solution at this
> > point. It complicates a bit the series to disallow writing to mounted block
> > devices which bases on this - either I have to pospone that to the next
> > cycle after we convert bcachefs or I have to find a way for the old
> > blkdev_get_by_path() API and the new functionality to coexist. I'll think
> > about that.
>
> Jan, Christain - what do you need from me for the conversion?

Well, the conversion is rather easy. You just need to call the new
bdev_open_by_path() function instead of the old blkdev_get_by_path(). It
returns struct bdev_handle (instead of plain struct bdev) and you
eventually need to pass this struct to bdev_release() (instead of calling
blkdev_put()).

But the merge at this point would be somewhat difficult because you'd need
to pull Christian's branch into your tree to get bdev_open_by_path() in the
first place. And that branch already depends on some changes in the btrfs
tree. So to save ourselves some headaches during the merge window, I think
not removing the old functions until bcachefs gets merged is the easiest
solution.

Honza
--
Jan Kara <[email protected]>
SUSE Labs, CR

2023-10-09 14:01:08

by Christian Brauner

[permalink] [raw]
Subject: Re: linux-next: build failure after merge of the vfs-brauner tree

> But the merge at this point would be somewhat difficult because you'd need
> to pull Christian's branch into your tree to get bdev_open_by_path() in the
> first place. And that branch already depends on some changes in the btrfs
> tree. So to save ourselves some headaches during the merge window, I think
> not removing the old functions until bcachefs gets merged is the easiest
> solution.

I dropped

commit 8ea3ec0740bdea9105eb416f07eef5d031b9385a
Author: Jan Kara <[email protected]>
AuthorDate: Wed Sep 27 11:34:35 2023 +0200
Commit: Christian Brauner <[email protected]>
CommitDate: Thu Sep 28 16:51:49 2023 +0200

block: Remove blkdev_get_by_*() functions

blkdev_get_by_*() and blkdev_put() functions are now unused. Remove
them.

Acked-by: Christoph Hellwig <[email protected]>
Reviewed-by: Christian Brauner <[email protected]>
Signed-off-by: Jan Kara <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Christian Brauner <[email protected]>

for now. You can find an archive of that branch including that commit
under the tag vfs.super.2023-10-09

Thanks!