-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes 5.12 bio bi_bdev additions and GPL issues with bio_*_io_acct functions #11639
Conversation
The struct bio member bi_disk was moved underneat a new member named bi_bdev. So all attempts to reference bio->bi_disk need to now become bio->bi_bdev->bd_disk. Signed-off-by: Coleman Kane <[email protected]>
The bio_*_acct functions became GPL exports, which is causing the kernel modules to refuse to compile. This replaces code with alternate function calls to the disk_*_io_acct interfaces, which are not GPL exports. This change was added in kernel commit 99dfc43ecbf67f12a06512918aaba61d55863efc. Signed-off-by: Coleman Kane <[email protected]>
The bio_*_acct functions became GPL exports, which causes the kernel modules to refuse to compile. This replaces code with alternate function calls to the disk_*_io_acct interfaces, which are not GPL exports. This change was added in kernel commit 99dfc43ecbf67f12a06512918aaba61d55863efc. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Coleman Kane <[email protected]> Closes #11639
The struct bio member bi_disk was moved underneath a new member named bi_bdev. So all attempts to reference bio->bi_disk need to now become bio->bi_bdev->bd_disk. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Coleman Kane <[email protected]> Closes #11639
The bio_*_acct functions became GPL exports, which causes the kernel modules to refuse to compile. This replaces code with alternate function calls to the disk_*_io_acct interfaces, which are not GPL exports. This change was added in kernel commit 99dfc43ecbf67f12a06512918aaba61d55863efc. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Coleman Kane <[email protected]> Closes #11639
The struct bio member bi_disk was moved underneath a new member named bi_bdev. So all attempts to reference bio->bi_disk need to now become bio->bi_bdev->bd_disk. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Coleman Kane <[email protected]> Closes openzfs#11639
The bio_*_acct functions became GPL exports, which causes the kernel modules to refuse to compile. This replaces code with alternate function calls to the disk_*_io_acct interfaces, which are not GPL exports. This change was added in kernel commit 99dfc43ecbf67f12a06512918aaba61d55863efc. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Coleman Kane <[email protected]> Closes openzfs#11639
The struct bio member bi_disk was moved underneath a new member named bi_bdev. So all attempts to reference bio->bi_disk need to now become bio->bi_bdev->bd_disk. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Coleman Kane <[email protected]> Closes openzfs#11639
The bio_*_acct functions became GPL exports, which causes the kernel modules to refuse to compile. This replaces code with alternate function calls to the disk_*_io_acct interfaces, which are not GPL exports. This change was added in kernel commit 99dfc43ecbf67f12a06512918aaba61d55863efc. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Coleman Kane <[email protected]> Closes openzfs#11639
I am seeing this problem with Linux 6.2.8 and zfs-staging a5c469c again. |
Specifically:
|
Can you open up a new issue to track the regression from the newer kernel? GitHub is going to keep this issue buried from view since it is already closed. |
It's already open: #14658 — it was just easier to find this one, I apologize for the noise. |
No worries, after I responded I went back and looked around a bit and found that one too - noise is no problem, just wanted to make sure it didn't get lost. |
Motivation and Context
Recent changes in the Linux kernel 5.12 merges modified the interfaces in the following breaking manners:
bio_start_io_acct
andbio_end_io_acct
became GPL'd exportsbio->bi_disk
member was moved into a newstruct block_device*
member ofstruct bio
such that accessing it now must be done asbio->bi_bdev->bd_disk
Description
Replaced calls to
bio_*_io_acct
with corresponding calls todisk_*_io_acct
, the latter are not GPL-encumberedHow Has This Been Tested?
I have been using this in production on my personal system with ZFS root and so far it has been working fine
Types of changes
Checklist:
Signed-off-by
.