LINBIT / drbd

LINBIT DRBD kernel module
https://docs.linbit.com/docs/users-guide-9.0/
GNU General Public License v2.0
580 stars 100 forks source link

Unable to compile on 5.15.x kernel #24

Closed 1848 closed 2 years ago

1848 commented 2 years ago

I am unable to build the drbd module on 5.15.x kernels.

drbd/drbd_dax_pmem.c:66:19: error: implicit declaration of function ‘dax_get_by_host’ [-Werror=implicit-function-declaration] 66 | dax_dev = dax_get_by_host(disk_name);

I tried drbd 9.1.5 and 9.2.0-rc2 on an Arch Linux with 5.15.10 kernel. It seems like dax_get_by_host is not exported anymore in 5.15.x, I can find it in the kallsyms but not in the header files. I guess this is a known issue? Is there a workaround?

debug-ch commented 2 years ago

I'm unable to build on 5.15.11-gentoo too. (drbd-9.1.5)

drbd/drbd_nl.c:2131:36: error: ‘struct request_queue’ has no member named ‘backing_dev_info’ 2131 | b->backing_dev_info.ra_pages);

drbd/drbd_nl.c:2132:26: error: ‘struct request_queue’ has no member named ‘backing_dev_info’ 2132 | q->backing_dev_info.ra_pages = b->backing_dev_info.ra_pages;

drbd/drbd_nl.c:2132:57: error: ‘struct request_queue’ has no member named ‘backing_dev_info’ 2132 | q->backing_dev_info.ra_pages = b->backing_dev_info.ra_pages;

drbd/drbd_nl.c:5563:41: error: ‘struct request_queue’ has no member named ‘backing_dev_info’ 5563 | bdi_congested(&q->backing_dev_info,

rck commented 2 years ago

That happens, compatibility breaks and we have to adapt our compat layer for new kernels. We are perfectly aware of it, there is no need to remind us, thanks. But we don't do new releases because of that, we try to be compatible with latest upstream (and most well known "enterprise" kernels/distros) when we do our next regular release. If you run bleeding edge kernels, sometimes you bleed...

debug-ch commented 2 years ago

Tnx for your reply.

BTW: The Gentoo Kernel V5.15.11 is not a bleeding one. The version is marked as 'stable'.

rck commented 2 years ago

You are right about that. "we try to be compatible" :). As this is the same source we compile binary packages for our customers, what really matters in this case - or where we would notiice - is that new versions compile for all the distros you would expect customers run in production (Debian, Ubuntu, Oracle, RHEL, SLES,... we have about 100 different kernels we build for). Being compatible with latest upstream (or stable or however it is called) is usually a bonus. And sometimes people are busy with other things.

debug-ch commented 2 years ago

OK. I am waiting for the fix. After that, I can roll out the new kernel.

debug-ch commented 2 years ago

I've been waiting for a compatibility fix for kernel 5.15.x for more than 2 months now. I can no longer accept the situation and have therefore discontinued kernel support for drbd 9 in my releases.

It has always worked well for many years without major delays, but unfortunately that is no longer the case.

Sorry that I have to say goodbye.