On 10/8/22 02:48, Konstantin Belousov wrote:
On Fri, Oct 07, 2022 at 11:39:04AM +0000, Benedict Reuschling wrote:
The branch main has been updated by bcr (doc committer):

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

commit 1c2be25f6080ee63baeae55e45761e1310d1b756
Author:     Benedict Reuschling <b...@freebsd.org>
AuthorDate: 2022-10-07 11:32:37 +0000
Commit:     Benedict Reuschling <b...@freebsd.org>
CommitDate: 2022-10-07 11:32:37 +0000

     Add extra EINVAL information about wrong block size to read(2)/write(2)
The read system call will return EINVAL if the current file offset is
     not a multiple of the block size. This also applies to write(2). Add an
     entry for EINVAL about this error to both man pages.
PR: 91149
     Event:                  Aberdeen Hackathon 2022
     Differential Revision:  https://reviews.freebsd.org/D24617
---
  lib/libc/sys/read.2  | 4 +++-
  lib/libc/sys/write.2 | 4 +++-
  2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/libc/sys/read.2 b/lib/libc/sys/read.2
index 8b58debd3fbb..28d085562af3 100644
--- a/lib/libc/sys/read.2
+++ b/lib/libc/sys/read.2
@@ -28,7 +28,7 @@
  .\"     @(#)read.2       8.4 (Berkeley) 2/26/94
  .\" $FreeBSD$
  .\"
-.Dd June 4, 2020
+.Dd October 7, 2022
  .Dt READ 2
  .Os
  .Sh NAME
@@ -250,6 +250,8 @@ The sum of the
  values in the
  .Fa iov
  array overflowed a 32-bit integer.
+.It Bq Er EINVAL
+The current file offset is not a multiple of the block size.
  .It Bq Er EFAULT
  Part of the
  .Fa iov
diff --git a/lib/libc/sys/write.2 b/lib/libc/sys/write.2
index 937e95b53a14..048338ed4dee 100644
--- a/lib/libc/sys/write.2
+++ b/lib/libc/sys/write.2
@@ -28,7 +28,7 @@
  .\"     @(#)write.2      8.5 (Berkeley) 4/2/94
  .\" $FreeBSD$
  .\"
-.Dd February 11, 2021
+.Dd October 7, 2022
  .Dt WRITE 2
  .Os
  .Sh NAME
@@ -205,6 +205,8 @@ is greater than
  if the sysctl
  .Va debug.iosize_max_clamp
  is non-zero).
+.It Bq Er EINVAL
+The current file offset is not a multiple of the block size.
This is bogus.  It does not.  You can perfectly write at arbitrary regular
file offset.


If you have a 4K block size character device, geom doesn't support writing / reading 515 byte blocks .... The description is maybe not applicable for all EINVAL's returned.

--HPS


Reply via email to