Files
linux/lib
Al Viro 622838f3fd iov_iter: make the amount already copied available to iterator callbacks
Making iterator macros keep track of the amount of data copied is pretty
easy and it has several benefits:
	1) we no longer need the mess like (from += v.iov_len) - v.iov_len
in the callbacks - initial value + total amount copied so far would do
just fine.
	2) less obviously, we no longer need to remember the initial amount
of data we wanted to copy; the loops in iterator macros are along the lines
of
	wanted = bytes;
	while (bytes) {
		copy some
		bytes -= copied
		if short copy
			break
	}
	bytes = wanted - bytes;
Replacement is
	offs = 0;
	while (bytes) {
		copy some
		offs += copied
		bytes -= copied
		if short copy
			break
	}
	bytes = offs;
That wouldn't be a win per se, but unlike the initial value of bytes, the amount
copied so far *is* useful in callbacks.
	3) in some cases (csum_and_copy_..._iter()) we already had offs manually
maintained by the callbacks.  With that change we can drop that.

	Less boilerplate and more readable code...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2021-06-10 11:45:19 -04:00
..
2020-10-30 17:34:45 +11:00
2021-04-14 16:30:30 +03:00
2021-05-06 19:24:12 -07:00
2018-08-16 12:14:42 -07:00
2021-01-21 14:06:00 -07:00
2021-01-03 20:05:18 -05:00
2021-04-14 16:30:30 +03:00
2021-04-30 11:20:36 -07:00
2021-02-26 09:41:05 -08:00
2021-04-14 16:30:30 +03:00
2018-10-16 13:45:44 +02:00
2021-05-06 19:24:12 -07:00
2020-06-15 18:22:43 -07:00
2020-12-15 22:46:16 -08:00
2018-10-15 16:31:29 -04:00
2020-12-15 22:46:16 -08:00
2021-02-26 09:41:05 -08:00
2021-02-26 09:41:05 -08:00