From: Al Viro Date: Sat, 26 May 2018 23:13:10 +0000 (-0400) Subject: aio_read_events_ring(): make a bit more readable X-Git-Tag: v4.19~765^2~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d2988bd412fac87859f0b68f5ea328fb0f09c216;p=platform%2Fkernel%2Flinux-rpi3.git aio_read_events_ring(): make a bit more readable The logics for 'avail' is * not past the tail of cyclic buffer * no more than asked * not past the end of buffer * not past the end of a page Unobfuscate the last part. Signed-off-by: Al Viro --- diff --git a/fs/aio.c b/fs/aio.c index 6098b6b..06761d5 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -1197,14 +1197,13 @@ static long aio_read_events_ring(struct kioctx *ctx, if (head == tail) break; - avail = min(avail, nr - ret); - avail = min_t(long, avail, AIO_EVENTS_PER_PAGE - - ((head + AIO_EVENTS_OFFSET) % AIO_EVENTS_PER_PAGE)); - pos = head + AIO_EVENTS_OFFSET; page = ctx->ring_pages[pos / AIO_EVENTS_PER_PAGE]; pos %= AIO_EVENTS_PER_PAGE; + avail = min(avail, nr - ret); + avail = min_t(long, avail, AIO_EVENTS_PER_PAGE - pos); + ev = kmap(page); copy_ret = copy_to_user(event + ret, ev + pos, sizeof(*ev) * avail);