Messages in this thread | | | Date | Mon, 11 Mar 2013 00:35:31 +0000 | From | Al Viro <> | Subject | Re: pipe_release oops. |
| |
On Sun, Mar 10, 2013 at 10:10:47PM +0000, Al Viro wrote: > On Fri, Mar 08, 2013 at 10:30:01AM -0800, Linus Torvalds wrote: > > > I must be missing something, and I wonder if the thing I'm missing is > > that with OPEN_PATH we may now have open calls that don't actually > > have FMODE_READ or FMODE_WRITE set at all. > > With OPEN_PATH we don't call ->open() (or anything in the driver, for that > matter) at all. I really don't see how that could trigger...
Hmm... How the devil would things like pipe_read_open() get called, anyway? pipe_rdwr_open() can be called, all right - that happens if you do pipe() and then open() via /proc/self/fd/<n>. But how could pipe_read_open() and pipe_write_open() be called? They are accessible only as ->open() of read_pipefifo_fops/write_pipefifo_fops. And those are only used by fifo_open(), which does reassign file->f_op to them, but does *not* call their ->open()...
| |