The branch main has been updated by ziaee:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=bd173a540c0ead4881b0866b721955440e3b96fe

commit bd173a540c0ead4881b0866b721955440e3b96fe
Author:     Felix Johnson <felix.the....@gmail.com>
AuthorDate: 2025-07-03 20:27:22 +0000
Commit:     Alexander Ziaee <zi...@freebsd.org>
CommitDate: 2025-07-04 05:14:19 +0000

    write.2: Add EINVAL to ERRORS
    
    Since phk rewrote the block layer ~2 decades ago, write(2) can return
    EINVAL when the target is a block device and nbytes, the write size, is
    not a multiple of the sector's block size.
    
    From the original PR:
    When coming from Linux, people are surprised by the fact
    that write(2) to a device must be aligned to block size.
    Writing a non-aligned block onto a raw device is a case
    where EINVAL is also returned but the manpage does not mention this.
    
    MFC after:              3 days
    PR:                     227185
    Reported by:            riggs
    Reviewed by:            imp, Pau Amma <paua...@gundo.com>
    Differential Revision:  https://reviews.freebsd.org/D51138
---
 lib/libsys/write.2 | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/libsys/write.2 b/lib/libsys/write.2
index 7ff1c42715d6..d2ff41ceead9 100644
--- a/lib/libsys/write.2
+++ b/lib/libsys/write.2
@@ -195,6 +195,9 @@ is greater than
 if the sysctl
 .Va debug.iosize_max_clamp
 is non-zero).
+.It Bq Er EINVAL
+The file descriptor refers to a raw device, and the write
+offset or size is not a multiple of the device's block size.
 .It Bq Er EINTEGRITY
 The backing store for
 .Fa fd

Reply via email to