Re: [RFC][PATCH] fix short copy handling in copy_mc_pipe_to_iter()

From: David Howells
Date: Tue Jun 14 2022 - 02:36:42 EST


Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:

> What's wrong with
> p_occupancy = pipe_occupancy(head, tail);
> if (p_occupancy >= pipe->max_usage)
> return 0;
> else
> return pipe->max_usage - p_occupancy;

Because "pipe->max_usage - p_occupancy" can be negative.

post_one_notification() is limited by pipe->ring_size, not pipe->max_usage.

The idea is to allow some slack in a watch pipe for the watch_queue code to
use that userspace can't.

David