Bug ID | 1052419 |
---|---|
Summary | nfs-kernel-server and Btrfs should not be used together |
Classification | openSUSE |
Product | openSUSE Distribution |
Version | Leap 42.3 |
Hardware | Other |
OS | openSUSE 42.3 |
Status | NEW |
Severity | Major |
Priority | P5 - None |
Component | Kernel |
Assignee | kernel-maintainers@forge.provo.novell.com |
Reporter | pg@suse.for.sabi.co.uk |
QA Contact | qa-bugs@suse.de |
Found By | --- |
Blocker | --- |
* Btrfs does not compute checksums on write in the case of O_DIRECT IO, and does not provide "stable writes" either, because they are enabled only through the regular IO mechanism. * The 'nfs-kernel-server' does not use the regular IO mechanism either, so it has the same issues as O_DIRECT and should not be used to export Btrfs filesystems unless for read-only mode. * The 'nfs-ganesha' server is simpler and runs in user mode, and does not have these problems with Btrfs, but AFAIK it is not part of openSUSE. * Btrfs is the default installation filesystem for openSUSE, a choice that I think is very good ('bcachefs' might be soon a better choice). The overall effect is not that data will be corrupted (usually, even if the lack of "stable writes" is an issue) but that checksums will be missing on data written via 'nfs-kernel-server' and this makes the system less resilient and causes baffling warnings to appear in logs. My recommendation is to package the 'nfs-ganesha' server and use it as the default or only NFS server for openSUSE. https://btrfs.wiki.kernel.org/index.php/Gotchas#Direct_IO_including_NFS_access