** Description changed:

  [ Impact ]
  
  DKMS make.log for linux-apfs-rw-0.3.2-0ubuntu6.1 for kernel 6.17.0-7-generic 
(x86_64)
  Wed Nov 26 18:36:47 UTC 2025
  make: Entering directory '/usr/src/linux-headers-6.17.0-7-generic'
  make[1]: Entering directory 
'/var/lib/dkms/linux-apfs-rw/0.3.2-0ubuntu6.1/build'
  warning: the compiler differs from the one used to build the kernel
    The kernel was built by: x86_64-linux-gnu-gcc-13 (Ubuntu 
13.3.0-6ubuntu2~24.04) 13.3.0
    You are using:           gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
    CC [M]  btree.o
    CC [M]  compress.o
    CC [M]  dir.o
    CC [M]  extents.o
  In file included from dir.c:8:
  apfs.h:952:60: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    952 | extern int apfs_fileattr_get(struct dentry *dentry, struct fileattr 
*fa);
        |                                                            ^~~~~~~~
  apfs.h:953:85: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    953 | extern int apfs_fileattr_set(struct mnt_idmap *idmap, struct dentry 
*dentry, struct fileattr *fa);
        |                                                                       
              ^~~~~~~~
  In file included from extents.c:8:
  apfs.h:952:60: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    952 | extern int apfs_fileattr_get(struct dentry *dentry, struct fileattr 
*fa);
        |                                                            ^~~~~~~~
  apfs.h:953:85: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    953 | extern int apfs_fileattr_set(struct mnt_idmap *idmap, struct dentry 
*dentry, struct fileattr *fa);
        |                                                                       
              ^~~~~~~~
  In file included from btree.c:8:
  apfs.h:952:60: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    952 | extern int apfs_fileattr_get(struct dentry *dentry, struct fileattr 
*fa);
        |                                                            ^~~~~~~~
  apfs.h:953:85: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    953 | extern int apfs_fileattr_set(struct mnt_idmap *idmap, struct dentry 
*dentry, struct fileattr *fa);
        |                                                                       
              ^~~~~~~~
  In file included from compress.c:10:
  apfs.h:952:60: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    952 | extern int apfs_fileattr_get(struct dentry *dentry, struct fileattr 
*fa);
        |                                                            ^~~~~~~~
  apfs.h:953:85: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    953 | extern int apfs_fileattr_set(struct mnt_idmap *idmap, struct dentry 
*dentry, struct fileattr *fa);
        |                                                                       
              ^~~~~~~~
    CC [M]  file.o
    CC [M]  inode.o
    CC [M]  key.o
    CC [M]  libzbitmap.o
  In file included from file.c:6:
  apfs.h:952:60: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    952 | extern int apfs_fileattr_get(struct dentry *dentry, struct fileattr 
*fa);
        |                                                            ^~~~~~~~
  apfs.h:953:85: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    953 | extern int apfs_fileattr_set(struct mnt_idmap *idmap, struct dentry 
*dentry, struct fileattr *fa);
        |                                                                       
              ^~~~~~~~
    CC [M]  lzfse/lzfse_decode.o
  In file included from inode.c:11:
  apfs.h:952:60: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    952 | extern int apfs_fileattr_get(struct dentry *dentry, struct fileattr 
*fa);
        |                                                            ^~~~~~~~
  apfs.h:953:85: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    953 | extern int apfs_fileattr_set(struct mnt_idmap *idmap, struct dentry 
*dentry, struct fileattr *fa);
        |                                                                       
              ^~~~~~~~
  file.c: In function ‘apfs_page_mkwrite’:
  file.c:57:9: error: implicit declaration of function ‘wait_for_stable_page’ 
[-Werror=implicit-function-declaration]
     57 |         wait_for_stable_page(page);
        |         ^~~~~~~~~~~~~~~~~~~~
  file.c:63:14: error: implicit declaration of function ‘page_has_buffers’; did 
you mean ‘inode_has_buffers’? [-Werror=implicit-function-declaration]
     63 |         if (!page_has_buffers(page))
        |              ^~~~~~~~~~~~~~~~
        |              inode_has_buffers
  file.c:81:17: error: ‘struct page’ has no member named ‘index’
     81 |         if (page->index == size >> PAGE_SHIFT)
        |                 ^~
  file.c: At top level:
  file.c:207:27: error: initialization of ‘int (*)(struct dentry *, struct 
file_kattr *)’ from incompatible pointer type ‘int (*)(struct dentry *, struct 
fileattr *)’ [-Werror=incompatible-pointer-types]
    207 |         .fileattr_get   = apfs_fileattr_get,
        |                           ^~~~~~~~~~~~~~~~~
  file.c:207:27: note: (near initialization for 
‘apfs_file_inode_operations.fileattr_get’)
  file.c:208:27: error: initialization of ‘int (*)(struct mnt_idmap *, struct 
dentry *, struct file_kattr *)’ from incompatible pointer type ‘int (*)(struct 
mnt_idmap *, struct dentry *, struct fileattr *)’ 
[-Werror=incompatible-pointer-types]
    208 |         .fileattr_set   = apfs_fileattr_set,
        |                           ^~~~~~~~~~~~~~~~~
  file.c:208:27: note: (near initialization for 
‘apfs_file_inode_operations.fileattr_set’)
  cc1: some warnings being treated as errors
  make[3]: *** 
[/usr/src/linux-headers-6.17.0-7-generic/scripts/Makefile.build:287: file.o] 
Error 1
  make[3]: *** Waiting for unfinished jobs....
  inode.c: In function ‘__apfs_write_begin’:
  inode.c:517:16: error: implicit declaration of function 
‘grab_cache_page_write_begin’ [-Werror=implicit-function-declaration]
    517 |         page = grab_cache_page_write_begin(mapping, index);
        |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
  inode.c:517:14: warning: assignment to ‘struct page *’ from ‘int’ makes 
pointer from integer without a cast [-Wint-conversion]
    517 |         page = grab_cache_page_write_begin(mapping, index);
        |              ^
  In file included from key.c:7:
  apfs.h:952:60: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    952 | extern int apfs_fileattr_get(struct dentry *dentry, struct fileattr 
*fa);
        |                                                            ^~~~~~~~
  apfs.h:953:85: warning: ‘struct fileattr’ declared inside parameter list will 
not be visible outside of this definition or declaration
    953 | extern int apfs_fileattr_set(struct mnt_idmap *idmap, struct dentry 
*dentry, struct fileattr *fa);
        |                                                                       
              ^~~~~~~~
  inode.c:524:14: error: implicit declaration of function ‘page_has_buffers’; 
did you mean ‘inode_has_buffers’? [-Werror=implicit-function-declaration]
    524 |         if (!page_has_buffers(page))
        |              ^~~~~~~~~~~~~~~~
        |              inode_has_buffers
  inode.c: In function ‘__apfs_write_end’:
  inode.c:657:33: error: passing argument 1 of ‘generic_write_end’ from 
incompatible pointer type [-Werror=incompatible-pointer-types]
    657 |         ret = generic_write_end(file, mapping, pos, len, copied, 
page_folio(page), fsdata);
        |                                 ^~~~
        |                                 |
        |                                 struct file *
  In file included from inode.c:7:
  /usr/src/linux-headers-6.17.0-7-generic/include/linux/buffer_head.h:266:23: 
note: expected ‘const struct kiocb *’ but argument is of type ‘struct file *’
    266 | int generic_write_end(const struct kiocb *, struct address_space *,
        |                       ^~~~~~~~~~~~~~~~~~~~
  inode.c: At top level:
  inode.c:733:27: error: initialization of ‘int (*)(const struct kiocb *, 
struct address_space *, loff_t,  unsigned int,  struct folio **, void **)’ {aka 
‘int (*)(const struct kiocb *, struct address_space *, long long int,  unsigned 
int,  struct folio **, void **)’} from incompatible pointer type ‘int 
(*)(struct file *, struct address_space *, loff_t,  unsigned int,  struct folio 
**, void **)’ {aka ‘int (*)(struct file *, struct address_space *, long long 
int,  unsigned int,  struct folio **, void **)’} 
[-Werror=incompatible-pointer-types]
    733 |         .write_begin    = apfs_write_begin,
        |                           ^~~~~~~~~~~~~~~~
  inode.c:733:27: note: (near initialization for ‘apfs_aops.write_begin’)
  inode.c:734:27: error: initialization of ‘int (*)(const struct kiocb *, 
struct address_space *, loff_t,  unsigned int,  unsigned int,  struct folio *, 
void *)’ {aka ‘int (*)(const struct kiocb *, struct address_space *, long long 
int,  unsigned int,  unsigned int,  struct folio *, void *)’} from incompatible 
pointer type ‘int (*)(struct file *, struct address_space *, loff_t,  unsigned 
int,  unsigned int,  struct folio *, void *)’ {aka ‘int (*)(struct file *, 
struct address_space *, long long int,  unsigned int,  unsigned int,  struct 
folio *, void *)’} [-Werror=incompatible-pointer-types]
    734 |         .write_end      = apfs_write_end,
        |                           ^~~~~~~~~~~~~~
  inode.c:734:27: note: (near initialization for ‘apfs_aops.write_end’)
  inode.c:2337:53: warning: ‘struct fileattr’ declared inside parameter list 
will not be visible outside of this definition or declaration
   2337 | int apfs_fileattr_get(struct dentry *dentry, struct fileattr *fa)
        |                                                     ^~~~~~~~
  inode.c:2337:5: error: conflicting types for ‘apfs_fileattr_get’; have 
‘int(struct dentry *, struct fileattr *)’
   2337 | int apfs_fileattr_get(struct dentry *dentry, struct fileattr *fa)
        |     ^~~~~~~~~~~~~~~~~
  apfs.h:952:12: note: previous declaration of ‘apfs_fileattr_get’ with type 
‘int(struct dentry *, struct fileattr *)’
    952 | extern int apfs_fileattr_get(struct dentry *dentry, struct fileattr 
*fa);
        |            ^~~~~~~~~~~~~~~~~
  inode.c: In function ‘apfs_fileattr_get’:
  inode.c:2341:29: error: passing argument 1 of ‘fileattr_fill_flags’ from 
incompatible pointer type [-Werror=incompatible-pointer-types]
   2341 |         fileattr_fill_flags(fa, flags);
        |                             ^~
        |                             |
        |                             struct fileattr *
  In file included from inode.c:18:
  /usr/src/linux-headers-6.17.0-7-generic/include/linux/fileattr.h:59:45: note: 
expected ‘struct file_kattr *’ but argument is of type ‘struct fileattr *’
     59 | void fileattr_fill_flags(struct file_kattr *fa, u32 flags);
        |                          ~~~~~~~~~~~~~~~~~~~^~
  inode.c: At top level:
  inode.c:2345:78: warning: ‘struct fileattr’ declared inside parameter list 
will not be visible outside of this definition or declaration
   2345 | int apfs_fileattr_set(struct mnt_idmap *idmap, struct dentry *dentry, 
struct fileattr *fa)
        |                                                                       
       ^~~~~~~~
  inode.c:2345:5: error: conflicting types for ‘apfs_fileattr_set’; have 
‘int(struct mnt_idmap *, struct dentry *, struct fileattr *)’
   2345 | int apfs_fileattr_set(struct mnt_idmap *idmap, struct dentry *dentry, 
struct fileattr *fa)
        |     ^~~~~~~~~~~~~~~~~
  apfs.h:953:12: note: previous declaration of ‘apfs_fileattr_set’ with type 
‘int(struct mnt_idmap *, struct dentry *, struct fileattr *)’
    953 | extern int apfs_fileattr_set(struct mnt_idmap *idmap, struct dentry 
*dentry, struct fileattr *fa);
        |            ^~~~~~~~~~~~~~~~~
  inode.c: In function ‘apfs_fileattr_set’:
  inode.c:2355:15: error: invalid use of undefined type ‘struct fileattr’
   2355 |         if (fa->flags & ~(FS_APPEND_FL | FS_IMMUTABLE_FL | 
FS_NODUMP_FL))
        |               ^~
  inode.c:2357:30: error: passing argument 1 of ‘fileattr_has_fsx’ from 
incompatible pointer type [-Werror=incompatible-pointer-types]
   2357 |         if (fileattr_has_fsx(fa))
        |                              ^~
        |                              |
        |                              struct fileattr *
  /usr/src/linux-headers-6.17.0-7-generic/include/linux/fileattr.h:68:62: note: 
expected ‘const struct file_kattr *’ but argument is of type ‘struct fileattr *’
     68 | static inline bool fileattr_has_fsx(const struct file_kattr *fa)
        |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~
  inode.c:2369:32: error: invalid use of undefined type ‘struct fileattr’
   2369 |         apfs_setflags(inode, fa->flags);
        |                                ^~
  cc1: some warnings being treated as errors
  make[3]: *** 
[/usr/src/linux-headers-6.17.0-7-generic/scripts/Makefile.build:287: inode.o] 
Error 1
  make[2]: *** [/usr/src/linux-headers-6.17.0-7-generic/Makefile:2016: .] Error 
2
  make[1]: *** [/usr/src/linux-headers-6.17.0-7-generic/Makefile:248: 
__sub-make] Error 2
  make[1]: Leaving directory 
'/var/lib/dkms/linux-apfs-rw/0.3.2-0ubuntu6.1/build'
  make: *** [Makefile:248: __sub-make] Error 2
  make: Leaving directory '/usr/src/linux-headers-6.17.0-7-generic'
  
  [ Test case ]
  
  Install the latest linux-6.17 kernel on Noble:
  
  $ sudo add-apt-repository ppa:canonical-kernel-team/ppa3
  $ sudo apt install linux-generic-hwe-24.04-edge
  
  Install apfs-dkms:
  
  $ sudo apt install apfs-dkms
  
  Package built and installed successfully.
  
  Load the module:
  
  $ sudo modprobe apfs
  
  Module loaded with no issues.
  
  Verify the filesystem has been registered properly:
  
  $ grep apfs /proc/filesystems
  
  apfs was listed as available fileystem.
  
- The same procedure can be repeated on linux-6.8 to test for possible
+ The same procedure should be repeated on linux-6.8 to test for possible
  regressions.
  
  [ Fix ]
  
  Apply upstream patches to properly support the new linux 6.17 ABI, namely the 
following:
-      - 
debian/patches/0009-Annotate-jump-table-in-lzvn-decompression-code.patch
-      - debian/patches/0010-Handle-page-functions-newly-removed-in-6.15.patch
-      - debian/patches/0011-Fix-the-returned-type-of-mkdir-for-6.15.patch
-      - debian/patches/0012-Dont-reference-page-index-in-6.16.patch
-      - debian/patches/0013-Rename-struct-fileattr-to-struct-file_kattr.patch
-      - debian/patches/0014-Fix-the-pafs_write_begin-end-type-for-6.17.patch
-      - debian/patches/0015-Set-dentry-operations-in-the-new-way.patch
+      - 
debian/patches/0009-Annotate-jump-table-in-lzvn-decompression-code.patch
+      - debian/patches/0010-Handle-page-functions-newly-removed-in-6.15.patch
+      - debian/patches/0011-Fix-the-returned-type-of-mkdir-for-6.15.patch
+      - debian/patches/0012-Dont-reference-page-index-in-6.16.patch
+      - debian/patches/0013-Rename-struct-fileattr-to-struct-file_kattr.patch
+      - debian/patches/0014-Fix-the-pafs_write_begin-end-type-for-6.17.patch
+      - debian/patches/0015-Set-dentry-operations-in-the-new-way.patch
  
  [ Regression potential ]
  
  We may experience regressions in systems that are using the Apple file
  system module (apfs), especially with kernels >= 6.8 kernel.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2133523

Title:
  apfs-dkms FTBS in Noble with the linux-6.17-hwe kernel

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-apfs-rw/+bug/2133523/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to