From nobody Sat Oct 08 06:58:36 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Mkwxw5w2qz4dj68; Sat, 8 Oct 2022 06:58:44 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4Mkwxw48Z9z3Gqs; Sat, 8 Oct 2022 06:58:44 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.16.1/8.16.1) with ESMTPS id 2986waHa011962 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Sat, 8 Oct 2022 09:58:39 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by tom.home (8.16.1/8.16.1/Submit) id 2986warn011961; Sat, 8 Oct 2022 09:58:36 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 8 Oct 2022 09:58:36 +0300 From: Konstantin Belousov To: Hans Petter Selasky Cc: Benedict Reuschling , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 1c2be25f6080 - main - Add extra EINVAL information about wrong block size to read(2)/write(2) Message-ID: References: <202210071139.297Bd4pq062191@gitrepo.freebsd.org> <63603095-a092-6a6c-c78c-8dfb242514a1@selasky.org> List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <63603095-a092-6a6c-c78c-8dfb242514a1@selasky.org> X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on tom.home X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Rspamd-Queue-Id: 4Mkwxw48Z9z3Gqs X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-ThisMailContainsUnwantedMimeParts: N On Sat, Oct 08, 2022 at 08:52:26AM +0200, Hans Petter Selasky wrote: > 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 > > > AuthorDate: 2022-10-07 11:32:37 +0000 > > > Commit: Benedict Reuschling > > > 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. This is why I specified the 'regular file' in my response. Obviously, a write to the disk driver special file is much more uncommon thing, and devfs nodes provide a lot of unusual semantics, which is unlikely worth mentioning in the generic write(2) syscall documentation. It is bogus to list these cases as generic error conditions.