[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <03730b50cebb4a349ad8667373bb8127@AcuMS.aculab.com>
Date: Wed, 16 Aug 2023 12:28:47 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'David Howells' <dhowells@...hat.com>,
Al Viro <viro@...iv.linux.org.uk>,
Linus Torvalds <torvalds@...ux-foundation.org>
CC: Jens Axboe <axboe@...nel.dk>, Christoph Hellwig <hch@...t.de>,
"Christian Brauner" <christian@...uner.io>,
Matthew Wilcox <willy@...radead.org>,
"Jeff Layton" <jlayton@...nel.org>,
"linux-fsdevel@...r.kernel.org" <linux-fsdevel@...r.kernel.org>,
"linux-block@...r.kernel.org" <linux-block@...r.kernel.org>,
"linux-mm@...ck.org" <linux-mm@...ck.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH v3 2/2] iov_iter: Don't deal with iter->copy_mc in
memcpy_from_iter_mc()
From: David Howells
> Sent: Wednesday, August 16, 2023 1:08 PM
Given:
> iter->copy_mc is only used with a bvec iterator and only by
> dump_emit_page() in fs/coredump.c so rather than handle this in
> memcpy_from_iter_mc() where it is checked repeatedly by _copy_from_iter() and
> copy_page_from_iter_atomic(),
Instead of adding the extra check to every copy:
> +static __always_inline
> +size_t __copy_from_iter(void *addr, size_t bytes, struct iov_iter *i)
> +{
> + if (unlikely(iov_iter_is_copy_mc(i)))
> + return __copy_from_iter_mc(addr, bytes, i);
> + return iterate_and_advance(i, bytes, addr,
> + copy_from_user_iter, memcpy_from_iter);
> }
Couldn't the relevant code directly call __copy_frtom_iter_mc() ?
Or a version then checked iov_is_copy_mc() and then fell
back to the standard function.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Powered by blists - more mailing lists