HomeFreeBSD

zfs does not honor NFS sync write semantics

Description

zfs does not honor NFS sync write semantics

The linux kernel's nfsd implementation use RWF_SYNC to determine if the
write is synchronous or not. This flag is used to set the kernel's I/O
control block flags. Unfortunately, ZFS was not updated to inspect these
flags so NFS sync writes were not being honored.

This change maps the IOCB_* flags to the ZFS equivalent.

Reviewed-by: Don Brady <don.brady@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: George Wilson <george.wilson@delphix.com>
Closes #8474
Closes #8452
Closes #8486

Details

Provenance
George Wilson <gwilson@zfsmail.com>Authored on Mar 11 2019, 4:13 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Mar 11 2019, 4:13 PM
Parents
rG1118f9944924: Fix lockdep between ds_lock and dd_lock in dsl_dataset_namelen()
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rGb1b94e9644ee: zfs does not honor NFS sync write semantics (authored by George Wilson <gwilson@zfsmail.com>).Mar 11 2019, 4:13 PM