====== Cleaning ====== ../../../scripts/Makefile.include:4: *** O=build_tools/ does not exist. Stop. make[1]: *** nsfs: No such file or directory. Stop. ====== Baseline building the tree ====== mount-notify_test.c:22:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 22 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/types.h:9, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test.c:6: /home/nipa/net-next/wt-1/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net-next/wt-1/build_tools/kselftest/filesystems/mount-notify/mount-notify_test] Error 1 make[1]: *** Waiting for unfinished jobs.... mount-notify_test_ns.c:23:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 23 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/types.h:9, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test_ns.c:6: /home/nipa/net-next/wt-1/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net-next/wt-1/build_tools/kselftest/filesystems/mount-notify/mount-notify_test_ns] Error 1 In file included from iommufd.c:12: In function ‘_test_ioctl_ioas_map_file’, inlined from ‘iommufd_mock_domain_all_aligns’ at iommufd.c:1772:5, inlined from ‘wrapper_iommufd_mock_domain_all_aligns’ at iommufd.c:1740:1: iommufd_utils.h:675:36: warning: ‘mfd’ may be used uninitialized [-Wmaybe-uninitialized] 675 | struct iommu_ioas_map_file cmd = { | ^~~ iommufd.c: In function ‘wrapper_iommufd_mock_domain_all_aligns’: iommufd.c:1749:13: note: ‘mfd’ was declared here 1749 | int mfd; | ^~~ In function ‘_test_ioctl_ioas_map_file’, inlined from ‘iommufd_mock_domain_all_aligns_copy’ at iommufd.c:1826:5, inlined from ‘wrapper_iommufd_mock_domain_all_aligns_copy’ at iommufd.c:1792:1: iommufd_utils.h:675:36: warning: ‘mfd’ may be used uninitialized [-Wmaybe-uninitialized] 675 | struct iommu_ioas_map_file cmd = { | ^~~ iommufd.c: In function ‘wrapper_iommufd_mock_domain_all_aligns_copy’: iommufd.c:1801:13: note: ‘mfd’ was declared here 1801 | int mfd; | ^~~ In file included from iommufd_utils.h:11: In function ‘_test_cmd_get_hw_info’, inlined from ‘iommufd_ioas_get_hw_info’ at iommufd.c:779:3, inlined from ‘wrapper_iommufd_ioas_get_hw_info’ at iommufd.c:752:1: iommufd_utils.h:804:37: warning: array subscript ‘struct iommu_test_hw_info[0]’ is partly outside array bounds of ‘struct iommu_test_hw_info_buffer_smaller[1]’ [-Warray-bounds=] 804 | assert(!info->flags); | ~~~~^~~~~~~ iommufd.c: In function ‘wrapper_iommufd_ioas_get_hw_info’: iommufd.c:761:11: note: object ‘buffer_smaller’ of size 4 761 | } buffer_smaller; | ^~~~~~~~~~~~~~ make[1]: *** nsfs: No such file or directory. Stop. In file included from kublk.c:6: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in kublk.c: In function ‘ublk_ctrl_update_size’: kublk.c:223:27: error: ‘UBLK_U_CMD_UPDATE_SIZE’ undeclared (first use in this function) 223 | .cmd_op = UBLK_U_CMD_UPDATE_SIZE, | ^~~~~~~~~~~~~~~~~~~~~~ kublk.c: In function ‘ublk_ctrl_quiesce_dev’: kublk.c:235:27: error: ‘UBLK_U_CMD_QUIESCE_DEV’ undeclared (first use in this function); did you mean ‘UBLK_U_CMD_DEL_DEV’? 235 | .cmd_op = UBLK_U_CMD_QUIESCE_DEV, | ^~~~~~~~~~~~~~~~~~~~~~ | UBLK_U_CMD_DEL_DEV kublk.c: In function ‘ublk_queue_init’: kublk.c:447:63: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 447 | if (dev->dev_info.flags & (UBLK_F_SUPPORT_ZERO_COPY | UBLK_F_AUTO_BUF_REG)) { | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG kublk.c: In function ‘ublk_set_auto_buf_reg’: kublk.c:560:16: error: variable ‘buf’ has initializer but incomplete type 560 | struct ublk_auto_buf_reg buf = {}; | ^~~~~~~~~~~~~~~~~ kublk.c:560:34: error: storage size of ‘buf’ isn’t known 560 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c:568:29: error: ‘UBLK_AUTO_BUF_REG_FALLBACK’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG_FALLBACK’? 568 | buf.flags = UBLK_AUTO_BUF_REG_FALLBACK; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG_FALLBACK kublk.c:570:21: error: implicit declaration of function ‘ublk_auto_buf_reg_to_sqe_addr’ [-Wimplicit-function-declaration] 570 | sqe->addr = ublk_auto_buf_reg_to_sqe_addr(&buf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kublk.c:560:34: error: unused variable ‘buf’ [-Werror=unused-variable] 560 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c: In function ‘__cmd_dev_add’: kublk.c:1068:25: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1068 | if ((features & UBLK_F_QUIESCE) && | ^~~~~~~~~~~~~~ kublk.c: In function ‘cmd_dev_get_features’: kublk.c:1266:30: error: ‘UBLK_F_UPDATE_SIZE’ undeclared (first use in this function) 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1267:30: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1268:30: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c: In function ‘main’: kublk.c:1493:46: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1493 | ctx.flags |= UBLK_F_AUTO_BUF_REG; | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG cc1: all warnings being treated as errors In file included from null.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in null.c: In function ‘ublk_null_tgt_init’: null.c:20:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 20 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN | | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC null.c:21:25: error: ‘UBLK_PARAM_TYPE_SEGMENT’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_DEVT’? 21 | UBLK_PARAM_TYPE_SEGMENT, | ^~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_DEVT null.c:30:18: error: ‘struct ublk_params’ has no member named ‘dma’ 30 | .dma = { | ^~~ null.c:31:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 31 | .alignment = 4095, | ^~~~~~~~~ null.c:33:18: error: ‘struct ublk_params’ has no member named ‘seg’ 33 | .seg = { | ^~~ null.c:34:26: error: ‘struct ublk_param_devt’ has no member named ‘seg_boundary_mask’ 34 | .seg_boundary_mask = 4095, | ^~~~~~~~~~~~~~~~~ null.c:35:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segment_size’ 35 | .max_segment_size = 32 << 10, | ^~~~~~~~~~~~~~~~ null.c:36:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segments’ 36 | .max_segments = 32, | ^~~~~~~~~~~~ In file included from file_backed.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in file_backed.c: In function ‘ublk_loop_tgt_init’: file_backed.c:138:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 138 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN, | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC file_backed.c:147:18: error: ‘struct ublk_params’ has no member named ‘dma’ 147 | .dma = { | ^~~ file_backed.c:148:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 148 | .alignment = 511, | ^~~~~~~~~ In file included from common.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in In file included from stripe.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in stripe.c: In function ‘stripe_to_uring_op’: stripe.c:120:29: error: ‘IORING_OP_READV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_READ_FIXED’? 120 | return zc ? IORING_OP_READV_FIXED : IORING_OP_READV; | ^~~~~~~~~~~~~~~~~~~~~ | IORING_OP_READ_FIXED stripe.c:122:29: error: ‘IORING_OP_WRITEV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_WRITE_FIXED’? 122 | return zc ? IORING_OP_WRITEV_FIXED : IORING_OP_WRITEV; | ^~~~~~~~~~~~~~~~~~~~~~ | IORING_OP_WRITE_FIXED In file included from fault_inject.c:11: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in make[1]: *** [../lib.mk:222: /home/nipa/net-next/wt-1/build_tools/kselftest/ublk/kublk] Error 1 ====== Building the tree before the patch ====== mount-notify_test.c:22:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 22 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/types.h:9, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test.c:6: /home/nipa/net-next/wt-1/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net-next/wt-1/build_tools/kselftest/filesystems/mount-notify/mount-notify_test] Error 1 make[1]: *** Waiting for unfinished jobs.... mount-notify_test_ns.c:23:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 23 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/types.h:9, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test_ns.c:6: /home/nipa/net-next/wt-1/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net-next/wt-1/build_tools/kselftest/filesystems/mount-notify/mount-notify_test_ns] Error 1 make[1]: *** nsfs: No such file or directory. Stop. In file included from kublk.c:6: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in kublk.c: In function ‘ublk_ctrl_update_size’: kublk.c:223:27: error: ‘UBLK_U_CMD_UPDATE_SIZE’ undeclared (first use in this function) 223 | .cmd_op = UBLK_U_CMD_UPDATE_SIZE, | ^~~~~~~~~~~~~~~~~~~~~~ kublk.c: In function ‘ublk_ctrl_quiesce_dev’: kublk.c:235:27: error: ‘UBLK_U_CMD_QUIESCE_DEV’ undeclared (first use in this function); did you mean ‘UBLK_U_CMD_DEL_DEV’? 235 | .cmd_op = UBLK_U_CMD_QUIESCE_DEV, | ^~~~~~~~~~~~~~~~~~~~~~ | UBLK_U_CMD_DEL_DEV kublk.c: In function ‘ublk_queue_init’: kublk.c:447:63: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 447 | if (dev->dev_info.flags & (UBLK_F_SUPPORT_ZERO_COPY | UBLK_F_AUTO_BUF_REG)) { | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG kublk.c: In function ‘ublk_set_auto_buf_reg’: kublk.c:560:16: error: variable ‘buf’ has initializer but incomplete type 560 | struct ublk_auto_buf_reg buf = {}; | ^~~~~~~~~~~~~~~~~ kublk.c:560:34: error: storage size of ‘buf’ isn’t known 560 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c:568:29: error: ‘UBLK_AUTO_BUF_REG_FALLBACK’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG_FALLBACK’? 568 | buf.flags = UBLK_AUTO_BUF_REG_FALLBACK; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG_FALLBACK kublk.c:570:21: error: implicit declaration of function ‘ublk_auto_buf_reg_to_sqe_addr’ [-Wimplicit-function-declaration] 570 | sqe->addr = ublk_auto_buf_reg_to_sqe_addr(&buf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kublk.c:560:34: error: unused variable ‘buf’ [-Werror=unused-variable] 560 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c: In function ‘__cmd_dev_add’: kublk.c:1068:25: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1068 | if ((features & UBLK_F_QUIESCE) && | ^~~~~~~~~~~~~~ kublk.c: In function ‘cmd_dev_get_features’: kublk.c:1266:30: error: ‘UBLK_F_UPDATE_SIZE’ undeclared (first use in this function) 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1267:30: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1268:30: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c: In function ‘main’: kublk.c:1493:46: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1493 | ctx.flags |= UBLK_F_AUTO_BUF_REG; | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG cc1: all warnings being treated as errors In file included from null.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in null.c: In function ‘ublk_null_tgt_init’: null.c:20:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 20 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN | | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC null.c:21:25: error: ‘UBLK_PARAM_TYPE_SEGMENT’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_DEVT’? 21 | UBLK_PARAM_TYPE_SEGMENT, | ^~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_DEVT null.c:30:18: error: ‘struct ublk_params’ has no member named ‘dma’ 30 | .dma = { | ^~~ null.c:31:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 31 | .alignment = 4095, | ^~~~~~~~~ null.c:33:18: error: ‘struct ublk_params’ has no member named ‘seg’ 33 | .seg = { | ^~~ null.c:34:26: error: ‘struct ublk_param_devt’ has no member named ‘seg_boundary_mask’ 34 | .seg_boundary_mask = 4095, | ^~~~~~~~~~~~~~~~~ null.c:35:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segment_size’ 35 | .max_segment_size = 32 << 10, | ^~~~~~~~~~~~~~~~ null.c:36:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segments’ 36 | .max_segments = 32, | ^~~~~~~~~~~~ In file included from file_backed.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in file_backed.c: In function ‘ublk_loop_tgt_init’: file_backed.c:138:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 138 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN, | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC file_backed.c:147:18: error: ‘struct ublk_params’ has no member named ‘dma’ 147 | .dma = { | ^~~ file_backed.c:148:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 148 | .alignment = 511, | ^~~~~~~~~ In file included from common.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in In file included from stripe.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in stripe.c: In function ‘stripe_to_uring_op’: stripe.c:120:29: error: ‘IORING_OP_READV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_READ_FIXED’? 120 | return zc ? IORING_OP_READV_FIXED : IORING_OP_READV; | ^~~~~~~~~~~~~~~~~~~~~ | IORING_OP_READ_FIXED stripe.c:122:29: error: ‘IORING_OP_WRITEV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_WRITE_FIXED’? 122 | return zc ? IORING_OP_WRITEV_FIXED : IORING_OP_WRITEV; | ^~~~~~~~~~~~~~~~~~~~~~ | IORING_OP_WRITE_FIXED In file included from fault_inject.c:11: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in make[1]: *** [../lib.mk:222: /home/nipa/net-next/wt-1/build_tools/kselftest/ublk/kublk] Error 1 ====== Checking if tree is clean ====== ?? arch/x86/Makefile.orig ?? arch/x86/Makefile.rej ====== Building the tree with the patch ====== mount-notify_test.c:22:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 22 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/types.h:9, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test.c:6: /home/nipa/net-next/wt-1/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net-next/wt-1/build_tools/kselftest/filesystems/mount-notify/mount-notify_test] Error 1 make[1]: *** Waiting for unfinished jobs.... mount-notify_test_ns.c:23:3: error: conflicting types for ‘__kernel_fsid_t’; have ‘struct ’ 23 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ In file included from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types_64.h:18, from /home/nipa/net-next/wt-1/build_tools/usr/include/asm/posix_types.h:7, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/posix_types.h:36, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/types.h:9, from /home/nipa/net-next/wt-1/build_tools/usr/include/linux/sched/types.h:5, from /usr/include/bits/sched.h:63, from /usr/include/sched.h:43, from mount-notify_test_ns.c:6: /home/nipa/net-next/wt-1/build_tools/usr/include/asm-generic/posix_types.h:81:3: note: previous declaration of ‘__kernel_fsid_t’ with type ‘__kernel_fsid_t’ 81 | } __kernel_fsid_t; | ^~~~~~~~~~~~~~~ make[1]: *** [../../lib.mk:222: /home/nipa/net-next/wt-1/build_tools/kselftest/filesystems/mount-notify/mount-notify_test_ns] Error 1 make[1]: *** nsfs: No such file or directory. Stop. In file included from kublk.c:6: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in kublk.c: In function ‘ublk_ctrl_update_size’: kublk.c:223:27: error: ‘UBLK_U_CMD_UPDATE_SIZE’ undeclared (first use in this function) 223 | .cmd_op = UBLK_U_CMD_UPDATE_SIZE, | ^~~~~~~~~~~~~~~~~~~~~~ kublk.c: In function ‘ublk_ctrl_quiesce_dev’: kublk.c:235:27: error: ‘UBLK_U_CMD_QUIESCE_DEV’ undeclared (first use in this function); did you mean ‘UBLK_U_CMD_DEL_DEV’? 235 | .cmd_op = UBLK_U_CMD_QUIESCE_DEV, | ^~~~~~~~~~~~~~~~~~~~~~ | UBLK_U_CMD_DEL_DEV kublk.c: In function ‘ublk_queue_init’: kublk.c:447:63: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 447 | if (dev->dev_info.flags & (UBLK_F_SUPPORT_ZERO_COPY | UBLK_F_AUTO_BUF_REG)) { | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG kublk.c: In function ‘ublk_set_auto_buf_reg’: kublk.c:560:16: error: variable ‘buf’ has initializer but incomplete type 560 | struct ublk_auto_buf_reg buf = {}; | ^~~~~~~~~~~~~~~~~ kublk.c:560:34: error: storage size of ‘buf’ isn’t known 560 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c:568:29: error: ‘UBLK_AUTO_BUF_REG_FALLBACK’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG_FALLBACK’? 568 | buf.flags = UBLK_AUTO_BUF_REG_FALLBACK; | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG_FALLBACK kublk.c:570:21: error: implicit declaration of function ‘ublk_auto_buf_reg_to_sqe_addr’ [-Wimplicit-function-declaration] 570 | sqe->addr = ublk_auto_buf_reg_to_sqe_addr(&buf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kublk.c:560:34: error: unused variable ‘buf’ [-Werror=unused-variable] 560 | struct ublk_auto_buf_reg buf = {}; | ^~~ kublk.c: In function ‘__cmd_dev_add’: kublk.c:1068:25: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1068 | if ((features & UBLK_F_QUIESCE) && | ^~~~~~~~~~~~~~ kublk.c: In function ‘cmd_dev_get_features’: kublk.c:1266:30: error: ‘UBLK_F_UPDATE_SIZE’ undeclared (first use in this function) 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1266:18: note: in expansion of macro ‘const_ilog2’ 1266 | [const_ilog2(UBLK_F_UPDATE_SIZE)] = "UPDATE_SIZE", | ^~~~~~~~~~~ kublk.c:1267:30: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1267:18: note: in expansion of macro ‘const_ilog2’ 1267 | [const_ilog2(UBLK_F_AUTO_BUF_REG)] = "AUTO_BUF_REG", | ^~~~~~~~~~~ kublk.c:1268:30: error: ‘UBLK_F_QUIESCE’ undeclared (first use in this function) 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~~~~ kublk.c:1254:46: note: in definition of macro ‘const_ilog2’ 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1254:24: error: array index in initializer not of integer type 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c:1254:24: note: (near initialization for ‘feat_map’) 1254 | #define const_ilog2(x) (63 - __builtin_clzll(x)) | ^ kublk.c:1268:18: note: in expansion of macro ‘const_ilog2’ 1268 | [const_ilog2(UBLK_F_QUIESCE)] = "QUIESCE", | ^~~~~~~~~~~ kublk.c: In function ‘main’: kublk.c:1493:46: error: ‘UBLK_F_AUTO_BUF_REG’ undeclared (first use in this function); did you mean ‘UBLKSRV_AUTO_BUF_REG’? 1493 | ctx.flags |= UBLK_F_AUTO_BUF_REG; | ^~~~~~~~~~~~~~~~~~~ | UBLKSRV_AUTO_BUF_REG cc1: all warnings being treated as errors In file included from null.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in null.c: In function ‘ublk_null_tgt_init’: null.c:20:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 20 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN | | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC null.c:21:25: error: ‘UBLK_PARAM_TYPE_SEGMENT’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_DEVT’? 21 | UBLK_PARAM_TYPE_SEGMENT, | ^~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_DEVT null.c:30:18: error: ‘struct ublk_params’ has no member named ‘dma’ 30 | .dma = { | ^~~ null.c:31:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 31 | .alignment = 4095, | ^~~~~~~~~ null.c:33:18: error: ‘struct ublk_params’ has no member named ‘seg’ 33 | .seg = { | ^~~ null.c:34:26: error: ‘struct ublk_param_devt’ has no member named ‘seg_boundary_mask’ 34 | .seg_boundary_mask = 4095, | ^~~~~~~~~~~~~~~~~ null.c:35:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segment_size’ 35 | .max_segment_size = 32 << 10, | ^~~~~~~~~~~~~~~~ null.c:36:26: error: ‘struct ublk_param_devt’ has no member named ‘max_segments’ 36 | .max_segments = 32, | ^~~~~~~~~~~~ In file included from file_backed.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in file_backed.c: In function ‘ublk_loop_tgt_init’: file_backed.c:138:50: error: ‘UBLK_PARAM_TYPE_DMA_ALIGN’ undeclared (first use in this function); did you mean ‘UBLK_PARAM_TYPE_BASIC’? 138 | .types = UBLK_PARAM_TYPE_BASIC | UBLK_PARAM_TYPE_DMA_ALIGN, | ^~~~~~~~~~~~~~~~~~~~~~~~~ | UBLK_PARAM_TYPE_BASIC file_backed.c:147:18: error: ‘struct ublk_params’ has no member named ‘dma’ 147 | .dma = { | ^~~ file_backed.c:148:26: error: ‘struct ublk_param_discard’ has no member named ‘alignment’ 148 | .alignment = 511, | ^~~~~~~~~ In file included from common.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in In file included from stripe.c:3: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in stripe.c: In function ‘stripe_to_uring_op’: stripe.c:120:29: error: ‘IORING_OP_READV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_READ_FIXED’? 120 | return zc ? IORING_OP_READV_FIXED : IORING_OP_READV; | ^~~~~~~~~~~~~~~~~~~~~ | IORING_OP_READ_FIXED stripe.c:122:29: error: ‘IORING_OP_WRITEV_FIXED’ undeclared (first use in this function); did you mean ‘IORING_OP_WRITE_FIXED’? 122 | return zc ? IORING_OP_WRITEV_FIXED : IORING_OP_WRITEV; | ^~~~~~~~~~~~~~~~~~~~~~ | IORING_OP_WRITE_FIXED In file included from fault_inject.c:11: kublk.h: In function ‘ublk_io_auto_zc_fallback’: kublk.h:219:35: error: ‘UBLK_IO_F_NEED_REG_BUF’ undeclared (first use in this function); did you mean ‘UBLKSRV_NEED_REG_BUF’? 219 | return !!(iod->op_flags & UBLK_IO_F_NEED_REG_BUF); | ^~~~~~~~~~~~~~~~~~~~~~ | UBLKSRV_NEED_REG_BUF kublk.h:219:35: note: each undeclared identifier is reported only once for each function it appears in make[1]: *** [../lib.mk:222: /home/nipa/net-next/wt-1/build_tools/kselftest/ublk/kublk] Error 1 ====== Checking if tree is clean ====== ?? arch/x86/Makefile.orig ?? arch/x86/Makefile.rej