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 linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <5d0bc437eebb4d5aa4774962a4970095@AcuMS.aculab.com> Date: Thu, 26 Jan 2023 16:09:05 +0000 From: David Laight <David.Laight@...LAB.COM> To: 'David Howells' <dhowells@...hat.com> CC: Steve French <smfrench@...il.com>, Al Viro <viro@...iv.linux.org.uk>, Shyam Prasad N <nspmangalore@...il.com>, Rohith Surabattula <rohiths.msft@...il.com>, Tom Talpey <tom@...pey.com>, Stefan Metzmacher <metze@...ba.org>, Christoph Hellwig <hch@...radead.org>, Matthew Wilcox <willy@...radead.org>, Jeff Layton <jlayton@...nel.org>, "linux-cifs@...r.kernel.org" <linux-cifs@...r.kernel.org>, "linux-fsdevel@...r.kernel.org" <linux-fsdevel@...r.kernel.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Steve French <sfrench@...ba.org> Subject: RE: [RFC 08/13] cifs: Add a function to read into an iter from a socket From: David Howells > Sent: 26 January 2023 15:44 ... > > I'm also not 100% sure that taking a copy of an iov_iter is a good idea. > > It shouldn't matter as the only problematic iterator is ITER_PIPE (advancing > that has side effects) - and splice_read is handled specially by patch 4. The > problem with splice_read with the way cifs works is that it likes to subdivide > its read/write requests across multiple reqs and then subsubdivide them if > certain types of failure occur. But you can't do that with ITER_PIPE. I was thinking that even if ok at the moment it might be troublesome later. Somewhere I started writing a patch to put the iov_cache[] for user requests into the same structure as the iterator. Copying those might cause oddities. > I build an ITER_BVEC from ITER_PIPE, ITER_UBUF and ITER_IOVEC in the top > levels with pins inserted as appropriate and hand the ITER_BVEC down. For > user-backed iterators it has to be done this way because the I/O may get > shuffled off to a different thread. For sub-page sided transfers it is probably worth doing a bounce buffer copy of user requests - just to save all the complex page pinning code. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
Powered by blists - more mailing lists