Details
-
Bug
-
Resolution: Fixed
-
Minor
-
Lustre 2.13.0, Lustre 2.14.0, Lustre 2.12.7
-
None
-
3
-
9223372036854775807
Description
osd-zfs module is not loading anymore since a kernel commit was merged in 5.9 and is now backported to 4.14 branch. This prevents using ZFS with Lustre, from 2.12 up to master.
This is due to a stronger module license check and EXPORT_SYMBOL_GPL. ZFS is CDDL and as osd-zfs depends on it, it is inheriting is taint, preventing it from using GPL-only symbols.
Here is the original commit: https://github.com/torvalds/linux/commit/262e6ae7081df304fc625cf368d5c2cbba2bb991
Backported to stable branch 4.14, and 5.4 (at least)
Reproduced with Lustre master branch and ZFS 2.0.5:
- 4.14.232: OK
- 4.14.238: Error
$ sudo LOAD=: FSTYPE=zfs ./lustre/tests/llmount.sh Loading modules from /home/ec2-user/lustre/lustre/tests/.. detected 16 online CPUs by sysfs libcfs will create CPU partition based on online CPUs libkmod: kmod_module_get_holders: could not open '/sys/module/pcc_cpufreq/holders': No such file or directory libkmod: kmod_module_get_holders: could not open '/sys/module/amd64_edac_mod/holders': No such file or directory quota/lquota options: 'hash_lqs_cur_bits=3' $ dmesg | tail -n5 [ 1844.388948] ZFS: Loaded module v2.0.5-1, ZFS pool version 5000, ZFS filesystem version 5 [ 1844.400002] osd_zfs: module uses symbols from proprietary module zfs, inheriting taint. [ 1844.403770] osd_zfs: Unknown symbol ktime_get_real_seconds (err 0) [ 1844.406319] osd_zfs: Unknown symbol init_user_ns (err 0) [ 1844.408548] osd_zfs: Unknown symbol ktime_get_seconds (err 0)
Not a problem with 2.10, likely because the patch which introduced this symbol was merged in 2.11: https://review.whamcloud.com/#/c/29857/