datto / dattobd

kernel module for taking block-level snapshots and incremental backups of Linux block devices
GNU General Public License v2.0
576 stars 122 forks source link

Error: "make_request_fn" unknown typename #285

Open yves84 opened 2 years ago

yves84 commented 2 years ago

Got an error if try to compile from git:

make -C src
make[1]: Verzeichnis „/usr/src/dattobd/src“ wird betreten
if [ ! -f kernel-config.h ] || tail -1 kernel-config.h | grep -qv '#endif'; then mkdir configure-tests/feature-tests/build; ./genconfig.sh "5.15.57-2-MANJARO" "-w"; fi;
generating configurations for kernel-5.15.57-2-MANJARO
make[2]: Verzeichnis „/usr/src/dattobd/src/configure-tests/feature-tests“ wird betreten
make[3]: Verzeichnis „/usr/lib/modules/5.15.57-2-MANJARO/build“ wird betreten
make[3]: Verzeichnis „/usr/lib/modules/5.15.57-2-MANJARO/build“ wird verlassen
make[2]: Verzeichnis „/usr/src/dattobd/src/configure-tests/feature-tests“ wird verlassen
xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value
performing configure test: HAVE_BIO_BI_REMAINING - not present
performing configure test: HAVE_BDOPS_OPEN_INODE - not present
performing configure test: HAVE_BDEV_STACK_LIMITS - not present
performing configure test: HAVE_BIOSET_CREATE_3 - not present
performing configure test: HAVE_BDOPS_OPEN_INT - not present
performing configure test: HAVE_BIO_ENDIO_INT - not present
performing configure test: HAVE_BD_SUPER - present
performing configure test: HAVE_BIO_ENDIO_1 - present
performing configure test: HAVE_BIO_LIST - present
performing configure test: HAVE_BIO_BI_BDEV - present
performing configure test: HAVE_BIO_BI_POOL - present
performing configure test: HAVE_BIOSET_INIT - present
performing configure test: HAVE_BLK_ALLOC_QUEUE_1 - not present
performing configure test: HAVE_BLKDEV_PUT_1 - not present
performing configure test: HAVE_BLK_ALLOC_QUEUE_RH_2 - not present
performing configure test: HAVE_BLK_ALLOC_QUEUE_2 - not present
performing configure test: HAVE_BVEC_MERGE_DATA - not present
performing configure test: HAVE_BIOSET_NEED_BVECS_FLAG - present
performing configure test: HAVE_BLKDEV_GET_BY_PATH - present
performing configure test: HAVE_BLK_SET_STACKING_LIMITS - present
performing configure test: HAVE_BLK_SET_DEFAULT_LIMITS - present
performing configure test: HAVE_BVEC_ITER - present
performing configure test: HAVE_BLK_STATUS_T - present
performing configure test: HAVE___DENTRY_PATH - not present
performing configure test: HAVE_ENUM_REQ_OP - not present
performing configure test: HAVE_COMPOUND_HEAD - present
performing configure test: HAVE_DENTRY_PATH_RAW - present
performing configure test: HAVE_D_UNLINKED - present
performing configure test: HAVE_IOPS_FALLOCATE - not present
performing configure test: HAVE_FILE_INODE - present
performing configure test: HAVE_ENUM_REQ_OPF - present
performing configure test: HAVE_FMODE_T - present
performing configure test: HAVE_FOPS_FALLOCATE - present
performing configure test: HAVE_GENHD_FL_NO_PART_SCAN - present
performing configure test: HAVE_MAKE_REQUEST_FN_INT - not present
performing configure test: HAVE_INODE_LOCK - present
performing configure test: HAVE_MAKE_REQUEST_FN_VOID - not present
performing configure test: HAVE_KERNEL_READ_PPOS - present
performing configure test: HAVE_KERNEL_WRITE_PPOS - present
performing configure test: HAVE_KERN_PATH - present
performing configure test: HAVE_NOTIFY_CHANGE_2 - not present
performing configure test: HAVE_MERGE_BVEC_FN - not present
performing configure test: HAVE_PART_NR_SECTS_READ - not present
performing configure test: HAVE_MNT_WANT_WRITE - present
performing configure test: HAVE_NOOP_LLSEEK - present
performing configure test: HAVE_SUBMIT_BIO_WAIT - not present
performing configure test: HAVE_PATH_PUT - present
performing configure test: HAVE_PROC_CREATE - present
performing configure test: HAVE_PROC_OPS - present
performing configure test: HAVE_SB_START_WRITE - present
performing configure test: HAVE_SYS_OLDUMOUNT - not present
performing configure test: HAVE_SUBMIT_BIO_1 - present
performing configure test: HAVE_STRUCT_PATH - present
performing configure test: HAVE_TASK_STRUCT_TASK_WORKS_HLIST - not present
performing configure test: HAVE_THAW_BDEV_INT - not present
performing configure test: HAVE_TASK_STRUCT_TASK_WORKS_CB_HEAD - present
performing configure test: HAVE_VFS_UNLINK_2 - not present
performing configure test: HAVE_UAPI_MOUNT_H - present
performing configure test: HAVE_USER_PATH_AT - present
performing configure test: HAVE_UUID_H - present
performing configure test: HAVE_VFS_FALLOCATE - present
performing configure test: HAVE_VZALLOC - present
make[2]: Verzeichnis „/usr/src/dattobd/src/configure-tests/feature-tests“ wird betreten
make[3]: Verzeichnis „/usr/lib/modules/5.15.57-2-MANJARO/build“ wird betreten
make[3]: Verzeichnis „/usr/lib/modules/5.15.57-2-MANJARO/build“ wird verlassen
make[2]: Verzeichnis „/usr/src/dattobd/src/configure-tests/feature-tests“ wird verlassen
performing sys_mount lookup
grep: /boot/System.map-5.15.57-2-MANJARO: Datei oder Verzeichnis nicht gefunden
performing sys_umount lookup
grep: /boot/System.map-5.15.57-2-MANJARO: Datei oder Verzeichnis nicht gefunden
performing sys_oldumount lookup
grep: /boot/System.map-5.15.57-2-MANJARO: Datei oder Verzeichnis nicht gefunden
performing sys_call_table lookup
grep: /boot/System.map-5.15.57-2-MANJARO: Datei oder Verzeichnis nicht gefunden
performing printk lookup
grep: /boot/System.map-5.15.57-2-MANJARO: Datei oder Verzeichnis nicht gefunden
make -C /lib/modules/5.15.57-2-MANJARO/build M=/usr/src/dattobd/src modules
make[2]: Verzeichnis „/usr/lib/modules/5.15.57-2-MANJARO/build“ wird betreten
  CC [M]  /usr/src/dattobd/src/bio_helper.o
In Datei, eingebunden von /usr/src/dattobd/src/bio_helper.c:11:
/usr/src/dattobd/src/snap_device.h:36:9: Fehler: unbekannter Typname: »make_request_fn«
   36 |         make_request_fn *sd_orig_mrf; // block device's original make request
      |         ^~~~~~~~~~~~~~~
/usr/src/dattobd/src/bio_helper.c: In Funktion »bio_make_read_clone«:
/usr/src/dattobd/src/bio_helper.c:671:26: Fehler: »BIO_MAX_PAGES« nicht deklariert (erstmalige Verwendung in dieser Funktion); meinten Sie »BIO_MAX_VECS«?
  671 |                 (pages > BIO_MAX_PAGES) ? BIO_MAX_PAGES : pages;
      |                          ^~~~~~~~~~~~~
      |                          BIO_MAX_VECS
/usr/src/dattobd/src/bio_helper.c:671:26: Anmerkung: jeder nicht deklarierte Bezeichner wird nur einmal für jede Funktion, in der er vorkommt, gemeldet
make[3]: *** [scripts/Makefile.build:289: /usr/src/dattobd/src/bio_helper.o] Fehler 1
make[2]: *** [Makefile:1893: /usr/src/dattobd/src] Fehler 2
make[2]: Verzeichnis „/usr/lib/modules/5.15.57-2-MANJARO/build“ wird verlassen
make[1]: *** [Makefile:17: default] Fehler 2
make[1]: Verzeichnis „/usr/src/dattobd/src“ wird verlassen
make: *** [Makefile:24: driver] Fehler 2

Same as here -> https://github.com/datto/dattobd/pull/229 ?

ty

yves84 commented 2 years ago

Same error under Debian 11 (bullseye) with Kernel 5.10.0-16-amd

AngoGonTal commented 2 years ago

Same issue on Ubuntu 22.04.1 LTS on Raspberry Pi (arm64) Linux dattobd 5.15.0-1012-raspi #14-Ubuntu SMP PREEMPT Fri Jun 24 13:10:28 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

ubuntu@dattobd:/tmp/dattobd/src$ uname -a
Linux dattobd 5.15.0-1012-raspi #14-Ubuntu SMP PREEMPT Fri Jun 24 13:10:28 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
ubuntu@dattobd:/tmp/dattobd/src$ sudo make
[...]
performing printk lookup
make -C /lib/modules/5.15.0-1012-raspi/build M=/tmp/dattobd/src modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-1012-raspi'
  CC [M]  /tmp/dattobd/src/bio_helper.o
In file included from /tmp/dattobd/src/bio_helper.c:11:
/tmp/dattobd/src/snap_device.h:36:9: error: unknown type name ‘make_request_fn’
   36 |         make_request_fn *sd_orig_mrf; // block device's original make request
      |         ^~~~~~~~~~~~~~~
/tmp/dattobd/src/bio_helper.c: In function ‘bio_make_read_clone’:
/tmp/dattobd/src/bio_helper.c:671:26: error: ‘BIO_MAX_PAGES’ undeclared (first use in this function); did you mean ‘BIO_MAX_VECS’?
  671 |                 (pages > BIO_MAX_PAGES) ? BIO_MAX_PAGES : pages;
      |                          ^~~~~~~~~~~~~
      |                          BIO_MAX_VECS
/tmp/dattobd/src/bio_helper.c:671:26: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [scripts/Makefile.build:285: /tmp/dattobd/src/bio_helper.o] Error 1
make[1]: *** [Makefile:1875: /tmp/dattobd/src] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-1012-raspi'
make: *** [Makefile:17: default] Error 2