Skip to content
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

Kernel 6.6.7 & zfs 2.1.14 - errors during module build #15674

Closed
maximd1 opened this issue Dec 15, 2023 · 5 comments
Closed

Kernel 6.6.7 & zfs 2.1.14 - errors during module build #15674

maximd1 opened this issue Dec 15, 2023 · 5 comments
Labels
Type: Defect Incorrect behavior (e.g. crash, hang)

Comments

@maximd1
Copy link

maximd1 commented Dec 15, 2023

System information

Type Version/Name
Distribution Name Centos Stream 9
Distribution Version 9
Kernel Version Linux 6.6.7-1.el9.elrepo.x86_64
Architecture x86_64
OpenZFS Version zfs-2.1.14-1

Describe the problem you're observing

Centos Stream 9 doesn't build zfs module with kernel 6.6.7. It fails with the following errors (I also attached make.log):

https://github.com/openzfs/zfs/files/13679571/make.log
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_file_os.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_ioctl_os.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_racct.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_sysfs.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_uio.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vfsops.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zio_crypt.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_ctldir.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_export.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_file.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_inode.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_super.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_xattr.o
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zvol_os.o
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_ctldir.c: In function ‘zfsctl_inode_alloc’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_ctldir.c:523:13: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
  523 |         ip->i_ctime = now;
      |             ^~~~~~~
      |             i_atime
  CC [M]  /var/lib/dkms/zfs/2.1.14/build/module/zfs/vdev_raidz_math_sse2.o
make[6]: *** [scripts/Makefile.build:243: /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_ctldir.o] Error 1
make[6]: *** Waiting for unfinished jobs....
In file included from /var/lib/dkms/zfs/2.1.14/build/include/sys/zfs_znode.h:163,
                 from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_dir.h:31,
                 from /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c:42:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c: In function ‘zfs_znode_alloc’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c:606:30: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
  606 |         ZFS_TIME_DECODE(&ip->i_ctime, ctime);
      |                              ^~~~~~~
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_znode_impl.h:160:10: note: in definition of macro ‘ZFS_TIME_DECODE’
  160 |         (tp)->tv_sec = (time64_t)(stmp)[0];     \
      |          ^~
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c:606:30: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
  606 |         ZFS_TIME_DECODE(&ip->i_ctime, ctime);
      |                              ^~~~~~~
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_znode_impl.h:161:10: note: in definition of macro ‘ZFS_TIME_DECODE’
  161 |         (tp)->tv_nsec = (long)(stmp)[1];        \
      |          ^~
In file included from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zpl.h:36,
                 from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/policy.h:36,
                 from /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:59:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c: In function ‘zfs_getattr_fast’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:1690:39: error: passing argument 1 of ‘generic_fillattr’ from incompatible pointer type [-Werror=incompatible-pointer-types]
 1690 |         zpl_generic_fillattr(user_ns, ip, sp);
      |                                       ^~
      |                                       |
      |                                       struct inode *
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/kernel/linux/vfs_compat.h:475:66: note: in definition of macro ‘zpl_generic_fillattr’
  475 | #define zpl_generic_fillattr(user_ns, ip, sp)   generic_fillattr(ip, sp)
      |                                                                  ^~
In file included from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/spl/sys/vfs.h:28,
                 from /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:37:
./include/linux/fs.h:3016:23: note: expected ‘struct mnt_idmap *’ but argument is of type ‘struct inode *’
 3016 | void generic_fillattr(struct mnt_idmap *, u32, struct inode *, struct kstat *);
      |                       ^~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zpl.h:36,
                 from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/policy.h:36,
                 from /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:59:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:1690:43: warning: passing argument 2 of ‘generic_fillattr’ makes integer from pointer without a cast [-Wint-conversion]
 1690 |         zpl_generic_fillattr(user_ns, ip, sp);
      |                                           ^~
      |                                           |
      |                                           struct kstat *
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/kernel/linux/vfs_compat.h:475:70: note: in definition of macro ‘zpl_generic_fillattr’
  475 | #define zpl_generic_fillattr(user_ns, ip, sp)   generic_fillattr(ip, sp)
      |                                                                      ^~
In file included from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/spl/sys/vfs.h:28,
                 from /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:37:
./include/linux/fs.h:3016:43: note: expected ‘u32’ {aka ‘unsigned int’} but argument is of type ‘struct kstat *’
 3016 | void generic_fillattr(struct mnt_idmap *, u32, struct inode *, struct kstat *);
      |                                           ^~~
In file included from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zpl.h:36,
                 from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/policy.h:36,
                 from /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:59:
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/kernel/linux/vfs_compat.h:475:49: error: too few arguments to function ‘generic_fillattr’
  475 | #define zpl_generic_fillattr(user_ns, ip, sp)   generic_fillattr(ip, sp)
      |                                                 ^~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:1690:9: note: in expansion of macro ‘zpl_generic_fillattr’
 1690 |         zpl_generic_fillattr(user_ns, ip, sp);
      |         ^~~~~~~~~~~~~~~~~~~~
In file included from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/spl/sys/vfs.h:28,
                 from /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:37:
./include/linux/fs.h:3016:6: note: declared here
 3016 | void generic_fillattr(struct mnt_idmap *, u32, struct inode *, struct kstat *);
      |      ^~~~~~~~~~~~~~~~
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c: In function ‘zfs_rezget’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c:1281:36: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
 1281 |         ZFS_TIME_DECODE(&ZTOI(zp)->i_ctime, ctime);
      |                                    ^~~~~~~
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_znode_impl.h:160:10: note: in definition of macro ‘ZFS_TIME_DECODE’
  160 |         (tp)->tv_sec = (time64_t)(stmp)[0];     \
      |          ^~
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c:1281:36: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
 1281 |         ZFS_TIME_DECODE(&ZTOI(zp)->i_ctime, ctime);
      |                                    ^~~~~~~
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_znode_impl.h:161:10: note: in definition of macro ‘ZFS_TIME_DECODE’
  161 |         (tp)->tv_nsec = (long)(stmp)[1];        \
      |          ^~
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c: In function ‘zfs_relatime_need_update’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c:1400:39: error: ‘const struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
 1400 |         if (zfs_compare_timespec(&ip->i_ctime, &ip->i_atime) >= 0)
      |                                       ^~~~~~~
      |                                       i_atime
In file included from /var/lib/dkms/zfs/2.1.14/build/include/sys/zfs_znode.h:163,
                 from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_dir.h:31,
                 from /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c:42:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c: In function ‘zfs_tstamp_update_setup’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c:1443:45: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
 1443 |                 ZFS_TIME_DECODE(&(ZTOI(zp)->i_ctime), ctime);
      |                                             ^~~~~~~
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_znode_impl.h:160:10: note: in definition of macro ‘ZFS_TIME_DECODE’
  160 |         (tp)->tv_sec = (time64_t)(stmp)[0];     \
      |          ^~
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.c:1443:45: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
 1443 |                 ZFS_TIME_DECODE(&(ZTOI(zp)->i_ctime), ctime);
      |                                             ^~~~~~~
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_znode_impl.h:161:10: note: in definition of macro ‘ZFS_TIME_DECODE’
  161 |         (tp)->tv_nsec = (long)(stmp)[1];        \
      |          ^~
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c: In function ‘zfs_setattr’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:2460:27: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
 2460 |                 ZTOI(zp)->i_ctime = zpl_inode_timestamp_truncate(vap->va_ctime,
      |                           ^~~~~~~
      |                           i_atime
In file included from /var/lib/dkms/zfs/2.1.14/build/include/sys/zfs_znode.h:163,
                 from /var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_dir.h:31,
                 from /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:48:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c: In function ‘zfs_putpage’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:3661:30: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
 3661 |         ZFS_TIME_ENCODE(&ip->i_ctime, ctime);
      |                              ^~~~~~~
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_znode_impl.h:149:32: note: in definition of macro ‘ZFS_TIME_ENCODE’
  149 |         (stmp)[0] = (uint64_t)(tp)->tv_sec;     \
      |                                ^~
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:3661:30: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
 3661 |         ZFS_TIME_ENCODE(&ip->i_ctime, ctime);
      |                              ^~~~~~~
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_znode_impl.h:150:32: note: in definition of macro ‘ZFS_TIME_ENCODE’
  150 |         (stmp)[1] = (uint64_t)(tp)->tv_nsec;    \
      |                                ^~
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c: In function ‘zfs_dirty_inode’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:3757:30: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
 3757 |         ZFS_TIME_ENCODE(&ip->i_ctime, ctime);
      |                              ^~~~~~~
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_znode_impl.h:149:32: note: in definition of macro ‘ZFS_TIME_ENCODE’
  149 |         (stmp)[0] = (uint64_t)(tp)->tv_sec;     \
      |                                ^~
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.c:3757:30: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
 3757 |         ZFS_TIME_ENCODE(&ip->i_ctime, ctime);
      |                              ^~~~~~~
/var/lib/dkms/zfs/2.1.14/build/include/os/linux/zfs/sys/zfs_znode_impl.h:150:32: note: in definition of macro ‘ZFS_TIME_ENCODE’
  150 |         (stmp)[1] = (uint64_t)(tp)->tv_nsec;    \
      |                                ^~
make[6]: *** [scripts/Makefile.build:243: /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_znode.o] Error 1
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_inode.c: In function ‘zpl_link’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_inode.c:730:13: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
  730 |         ip->i_ctime = current_time(ip);
      |             ^~~~~~~
      |             i_atime
cc1: some warnings being treated as errors
make[6]: *** [scripts/Makefile.build:243: /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zfs_vnops_os.o] Error 1
make[6]: *** [scripts/Makefile.build:243: /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_inode.o] Error 1
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_xattr.c: In function ‘zpl_xattr_set_dir’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_xattr.c:513:21: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
  513 |                 ip->i_ctime = current_time(ip);
      |                     ^~~~~~~
      |                     i_atime
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_xattr.c: In function ‘zpl_set_acl_impl’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_xattr.c:963:45: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
  963 |                                         ip->i_ctime = current_time(ip);
      |                                             ^~~~~~~
      |                                             i_atime
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_xattr.c: In function ‘zpl_init_acl’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_xattr.c:1122:29: error: ‘struct inode’ has no member named ‘i_ctime’; did you mean ‘i_atime’?
 1122 |                         ip->i_ctime = current_time(ip);
      |                             ^~~~~~~
      |                             i_atime
make[6]: *** [scripts/Makefile.build:243: /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zpl_xattr.o] Error 1
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zvol_os.c: In function ‘zvol_ioctl’:
/var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zvol_os.c:697:17: error: implicit declaration of function ‘fsync_bdev’; did you mean ‘sync_bdevs’? [-Werror=implicit-function-declaration]
  697 |                 fsync_bdev(bdev);
      |                 ^~~~~~~~~~
      |                 sync_bdevs
cc1: some warnings being treated as errors
make[6]: *** [scripts/Makefile.build:243: /var/lib/dkms/zfs/2.1.14/build/module/zfs/../os/linux/zfs/zvol_os.o] Error 1
make[5]: *** [scripts/Makefile.build:480: /var/lib/dkms/zfs/2.1.14/build/module/zfs] Error 2
make[5]: *** Waiting for unfinished jobs....
  LD [M]  /var/lib/dkms/zfs/2.1.14/build/module/zstd/zzstd.o
make[4]: *** [/usr/src/kernels/6.6.7-1.el9.elrepo.x86_64/Makefile:1913: /var/lib/dkms/zfs/2.1.14/build/module] Error 2
make[3]: *** [Makefile:234: __sub-make] Error 2
make[3]: Leaving directory '/usr/src/kernels/6.6.7-1.el9.elrepo.x86_64'
make[2]: *** [Makefile:55: modules-Linux] Error 2
make[2]: Leaving directory '/var/lib/dkms/zfs/2.1.14/build/module'
make[1]: *** [Makefile:939: all-recursive] Error 1
make[1]: Leaving directory '/var/lib/dkms/zfs/2.1.14/build'
make: *** [Makefile:800: all] Error 2

Describe how to reproduce the problem

dnf install zfs
dkms --force install zfs/2.1.14

@maximd1 maximd1 added the Type: Defect Incorrect behavior (e.g. crash, hang) label Dec 15, 2023
@AllKind
Copy link
Contributor

AllKind commented Dec 15, 2023

https://github.com/openzfs/zfs/blob/zfs-2.1-release/META

openzfs 2.1.14 supports kernels up to 6.5.
The compat 6.6 patches are in the 2.2 releases.

@maximd1
Copy link
Author

maximd1 commented Dec 15, 2023

Thank you. Anyway, issue may be closed - I managed to build 2.2.2 from sources.

@maximd1 maximd1 closed this as completed Dec 15, 2023
@lignumqt
Copy link

https://github.com/openzfs/zfs/blob/zfs-2.1-release/META

openzfs 2.1.14 supports kernels up to 6.5. The compat 6.6 patches are in the 2.2 releases.

Do you happen to know if openzfs 2.1.14 will support the 6.6 kernel?

@tw-atroehrsm
Copy link

Hey! Any chance to have compat changes for 6.6 merged into 2.1.15 staging?
giving that 6.6 is a LTS kernel it might make sense.. Me personally I'm still reluctant to move to 2.2 with all those changes going on there. currently im using 6.1 lts kernel

@behlendorf
Copy link
Contributor

There's an open PR #15860 to backport these changes for 2.1.15-staging so they can be included in 2.1.15.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Defect Incorrect behavior (e.g. crash, hang)
Projects
None yet
Development

No branches or pull requests

5 participants