Merge branch 'pipe-rework' (patches from David Howells)
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 6 Dec 2019 00:35:53 +0000 (16:35 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 6 Dec 2019 00:35:53 +0000 (16:35 -0800)
commitda73fcd8cfdc3d0ef49280fa0d511723a0220e03
treeeabffed509dec4905670a19bc94fb73328f319ca
parent3f1266ec704d3efcfc8179c71bed9a75963b6344
parent8f868d68d335a17923dffb6858f8e9b656424699
Merge branch 'pipe-rework' (patches from David Howells)

Merge two fixes for the pipe rework from David Howells:
 "Here are a couple of patches to fix bugs syzbot found in the pipe
  changes:

   - An assertion check will sometimes trip when polling a pipe because
     the ring size and indices used are approximate and may be being
     changed simultaneously.

     An equivalent approximate calculation was done previously, but
     without the assertion check, so I've just dropped the check. To
     make it accurate, the pipe mutex would need to be taken or the spin
     lock could be used - but usage of the spinlock would need to be
     rolled out into splice, iov_iter and other places for that.

   - The index mask and the max_usage values cannot be cached across
     pipe_wait() as F_SETPIPE_SZ could have been called during the wait.
     This can cause pipe_write() to break"

* pipe-rework:
  pipe: Fix missing mask update after pipe_wait()
  pipe: Remove assertion from pipe_poll()
fs/pipe.c