lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 2 Jan 2021 15:17:34 +0000 From: Pavel Begunkov <asml.silence@...il.com> To: linux-block@...r.kernel.org Cc: Jens Axboe <axboe@...nel.dk>, Christoph Hellwig <hch@...radead.org>, Matthew Wilcox <willy@...radead.org>, Ming Lei <ming.lei@...hat.com>, Johannes Weiner <hannes@...xchg.org>, Alexander Viro <viro@...iv.linux.org.uk>, "Darrick J . Wong" <darrick.wong@...cle.com>, "Martin K . Petersen" <martin.petersen@...cle.com>, Jonathan Corbet <corbet@....net>, linux-xfs@...r.kernel.org, linux-fsdevel@...r.kernel.org, io-uring@...r.kernel.org, linux-kernel@...r.kernel.org, target-devel@...r.kernel.org, linux-scsi@...r.kernel.org, linux-doc@...r.kernel.org Subject: [PATCH v2 2/7] bvec/iter: disallow zero-length segment bvecs zero-length bvec segments are allowed in general, but not handled by bio and down the block layer so filtered out. This inconsistency may be confusing and prevent from optimisations. As zero-length segments are useless and places that were generating them are patched, declare them not allowed. Signed-off-by: Pavel Begunkov <asml.silence@...il.com> --- Documentation/filesystems/porting.rst | 7 +++++++ lib/iov_iter.c | 2 -- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Documentation/filesystems/porting.rst b/Documentation/filesystems/porting.rst index 867036aa90b8..c722d94f29ea 100644 --- a/Documentation/filesystems/porting.rst +++ b/Documentation/filesystems/porting.rst @@ -865,3 +865,10 @@ no matter what. Everything is handled by the caller. clone_private_mount() returns a longterm mount now, so the proper destructor of its result is kern_unmount() or kern_unmount_array(). + +--- + +**mandatory** + +zero-length bvec segments are disallowed, they must be filtered out before +passed on to an iterator. diff --git a/lib/iov_iter.c b/lib/iov_iter.c index 1635111c5bd2..7de304269641 100644 --- a/lib/iov_iter.c +++ b/lib/iov_iter.c @@ -72,8 +72,6 @@ __start.bi_bvec_done = skip; \ __start.bi_idx = 0; \ for_each_bvec(__v, i->bvec, __bi, __start) { \ - if (!__v.bv_len) \ - continue; \ (void)(STEP); \ } \ } -- 2.24.0
Powered by blists - more mailing lists