Re: Is there a reason why REQ_OP_READ has to be 0?

From: Christoph Hellwig
Date: Mon Jan 16 2023 - 11:07:12 EST


On Mon, Jan 16, 2023 at 04:01:50PM +0000, David Howells wrote:
> Hi Jens, Christoph,
>
> Do you know if there's a reason why REQ_OP_READ has to be 0? I'm seeing a
> circumstance where a direct I/O write on a blockdev is BUG'ing in my modified
> iov_iter code because the iterator says it's a source iterator (correct), but
> the bio->bi_opf == REQ_OP_READ (which should be wrong).
>
> I thought I'd move REQ_OP_READ to, say, 4 so that I could try and see if it's
> just undefined but the kernel BUGs and then panics during boot.

There's all kind of assumptions of that from basically day 1 of
Linux. The most obvious one is in op_is_write, but I'm pretty sure
there are more hidden somewhere.