Linux 5.16: bio_set_dev is no longer a helper macro
commitd08b99aca04d7fa16b0c40170a219c21343ee658
authorColeman Kane <ckane@colemankane.org>
Sat, 4 Dec 2021 02:45:28 +0000 (3 21:45 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 7 Dec 2021 20:28:00 +0000 (7 12:28 -0800)
tree3f606936432a49ce33595388499dfa211038b598
parentf6e22561d21af6700a1180ecaedc93049614b307
Linux 5.16: bio_set_dev is no longer a helper macro

This change adds a confiugre check to determine if bio_set_dev is a
helper macro or not. If not, then the attempt to override its internal
call to bio_associate_blkg(), with a macro definition to our own
version, is no longer possible, as the compiler won't use it when
compiling the new inline function replacement implemented in the header.
This change also creates a new vdev_bio_set_dev() function that performs
the same work, and also performs the work implemented in
vdev_bio_associate_blkg(), as it is the only thing calling that function
in our code. Our custom vdev_bio_associate_blkg() is now only compiled
if the bio_set_dev() is a macro in the Linux headers.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Coleman Kane <ckane@colemankane.org>
Closes #12819
config/kernel-bio.m4
module/os/linux/zfs/vdev_disk.c