On Wed, Feb 26, 2025 at 06:47:54AM +0800, Ming Lei wrote: > On Wed, Feb 26, 2025 at 1:32 AM Keith Busch <kbusch@xxxxxxxxxx> wrote: > > > > On Tue, Feb 25, 2025 at 05:40:14PM +0800, Ming Lei wrote: > > > On Mon, Feb 24, 2025 at 01:31:12PM -0800, Keith Busch wrote: > > > > + > > > > + if (op_is_write(req_op(rq))) > > > > + imu->perm = IO_IMU_WRITEABLE; > > > > + else > > > > + imu->perm = IO_IMU_READABLE; > > > > > > Looks the above is wrong, if request is for write op, the buffer > > > should be readable & !writeable. > > > > > > IO_IMU_WRITEABLE is supposed to mean the buffer is writeable, isn't it? > > > > In the setup I used here, IMU_WRITEABLE means this can be used in a > > write command. You can write from this buffer, not to it. > > But IMU represents a buffer, and the buffer could be used for other > OPs in future, > instead of write command only. Here it is more readable to mark the buffer > readable or writable. > > I'd suggest not introducing the confusion from the beginning. Absolutely, no disagreement here. My next version calls the flags "IO_IMU_SOURCE" and "IO_IMU_DEST" and defined from the same ITER_ values.