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 <jack@xxxxxxxx> SUSE Labs, CR