Re: git: 1c2be25f6080 - main - Add extra EINVAL information about wrong block size to read(2)/write(2)

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Sat, 08 Oct 2022 00:48:03 UTC
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 <bcr@FreeBSD.org>
> AuthorDate: 2022-10-07 11:32:37 +0000
> Commit:     Benedict Reuschling <bcr@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.

>  .It Bq Er EINTEGRITY
>  The backing store for
>  .Fa fd