Debdiff to enable support for both 6.8 and 6.14 kernels.
** Description changed:
-
[ Impact ]
DKMS make.log for linux-apfs-rw-0.3.2-0ubuntu6 for kernel 6.14.0-15-generic
(x86_64)
Thu May 15 15:36:04 UTC 2025
make: Entering directory '/usr/src/linux-headers-6.14.0-15-generic'
make[1]: Entering directory '/var/lib/dkms/linux-apfs-rw/0.3.2-0ubuntu6/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
- CC [M] file.o
- CC [M] inode.o
+ 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
+ CC [M] file.o
+ CC [M] inode.o
inode.c: In function ‘__apfs_write_begin’:
inode.c:578:35: error: passing argument 1 of ‘__block_write_begin’ from
incompatible pointer type [-Werror=incompatible-pointer-types]
- 578 | err = __block_write_begin(page, pos, len, apfs_get_new_block);
- | ^~~~
- | |
- | struct page *
+ 578 | err = __block_write_begin(page, pos, len, apfs_get_new_block);
+ | ^~~~
+ | |
+ | struct page *
In file included from inode.c:7:
/usr/src/linux-headers-6.14.0-15-generic/include/linux/buffer_head.h:261:39:
note: expected ‘struct folio *’ but argument is of type ‘struct page *’
- 261 | int __block_write_begin(struct folio *folio, loff_t pos, unsigned len,
- | ~~~~~~~~~~~~~~^~~~~
+ 261 | int __block_write_begin(struct folio *folio, loff_t pos, unsigned len,
+ | ~~~~~~~~~~~~~~^~~~~
inode.c: In function ‘__apfs_write_end’:
inode.c:641:66: error: passing argument 6 of ‘generic_write_end’ from
incompatible pointer type [-Werror=incompatible-pointer-types]
- 641 | ret = generic_write_end(file, mapping, pos, len, copied, page,
fsdata);
- | ^~~~
- | |
- | struct page *
+ 641 | ret = generic_write_end(file, mapping, pos, len, copied, page,
fsdata);
+ | ^~~~
+ | |
+ | struct page *
/usr/src/linux-headers-6.14.0-15-generic/include/linux/buffer_head.h:268:33:
note: expected ‘struct folio *’ but argument is of type ‘struct page *’
- 268 | struct folio *, void *);
- | ^~~~~~~~~~~~~~
+ 268 | struct folio *, void *);
+ | ^~~~~~~~~~~~~~
inode.c: At top level:
inode.c:705:27: error: initialization of ‘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 **)’} from incompatible pointer type ‘int (*)(struct file *,
struct address_space *, loff_t, unsigned int, struct page **, void **)’ {aka
‘int (*)(struct file *, struct address_space *, long long int, unsigned int,
struct page **, void **)’} [-Werror=incompatible-pointer-types]
- 705 | .write_begin = apfs_write_begin,
- | ^~~~~~~~~~~~~~~~
+ 705 | .write_begin = apfs_write_begin,
+ | ^~~~~~~~~~~~~~~~
inode.c:705:27: note: (near initialization for ‘apfs_aops.write_begin’)
inode.c:706:27: error: initialization of ‘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 *)’} from incompatible pointer type
‘int (*)(struct file *, struct address_space *, loff_t, unsigned int, unsigned
int, struct page *, void *)’ {aka ‘int (*)(struct file *, struct address_space
*, long long int, unsigned int, unsigned int, struct page *, void *)’}
[-Werror=incompatible-pointer-types]
- 706 | .write_end = apfs_write_end,
- | ^~~~~~~~~~~~~~
+ 706 | .write_end = apfs_write_end,
+ | ^~~~~~~~~~~~~~
inode.c:706:27: note: (near initialization for ‘apfs_aops.write_end’)
cc1: some warnings being treated as errors
make[3]: ***
[/usr/src/linux-headers-6.14.0-15-generic/scripts/Makefile.build:207: inode.o]
Error 1
make[2]: *** [/usr/src/linux-headers-6.14.0-15-generic/Makefile:1999: .]
Error 2
make[1]: *** [/usr/src/linux-headers-6.14.0-15-generic/Makefile:251:
__sub-make] Error 2
make[1]: Leaving directory '/var/lib/dkms/linux-apfs-rw/0.3.2-0ubuntu6/build'
make: *** [Makefile:251: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-headers-6.14.0-15-generic'
[ Test case ]
+ Install the latest linux-6.14 kernel on Noble:
+
+ $ sudo add-apt-repository ppa:canonical-kernel-team/ppa
+ $ sudo apt install linux-generic-hwe-24.04-wip
+
+ Install apfs-dkms:
+
+ $ sudo apt install apfs-dkms
+
+ Load the module:
+
+ $ sudo modprobe apfs
+
+ Verify the filesystem has been registered properly:
+
+ $ grep apfs /proc/filesystems
+
+ The same procedure can be repeated on linux-6.8 to test for possible
+ regressions.
+
[ Fix ]
+ Apply upstream patches to properly support the new linux 6.14 ABI,
+ namely the following:
+
+ * a34220c93d20c8759b829ca20c29efd26c56b046: "Switch ->write_begin() and
->write_end() to folios"
+ * e16e7f4f8a7adfc6f115c660a99c2feaba816858: "Update apfs_dentry_revalidate()
arguments for 6.14"
+
[ Regression potential ]
+
+ We may experience regressions in systems that are using the Apple file
+ system module (apfs), especially with kernels >= 6.8 kernel.
** Changed in: linux-apfs-rw (Ubuntu Noble)
Status: New => In Progress
** Changed in: linux-apfs-rw (Ubuntu Noble)
Assignee: (unassigned) => John Cabaj (john-cabaj)
** Patch added: "apfs-support-noble-6.14.debdiff"
https://bugs.launchpad.net/ubuntu/+source/linux-apfs-rw/+bug/2110915/+attachment/5877761/+files/apfs-support-noble-6.14.debdiff
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2110915
Title:
apfs-dkms FTBS in Noble with the linux-6.14-hwe kernel
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-apfs-rw/+bug/2110915/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs