On 03/06, Oleg Nesterov wrote:
On 03/06, K Prateek Nayak wrote:
@@ -272,9 +272,9 @@ pipe_read(struct kiocb *iocb, struct iov_iter *to)
*/
for (;;) {
/* Read ->head with a barrier vs post_one_notification() */
- unsigned int head = smp_load_acquire(&pipe->head);
- unsigned int tail = pipe->tail;
- unsigned int mask = pipe->ring_size - 1;
+ unsigned short head = smp_load_acquire(&pipe->head);
+ unsigned short tail = pipe->tail;
+ unsigned short mask = pipe->ring_size - 1;
I dunno... but if we do this, perhaps we should
s/unsigned int/pipe_index_t instead?
At least this would be more grep friendly.
in any case, I think another cleanup before this change makes sense...
pipe->ring_size is overused. pipe_read(), pipe_write() and much more
users do not need "unsigned int mask", they can use pipe_buf(buf, slot)
instead.
Oleg.