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


You are receiving this mail because: