On Tue, 2018-04-17 at 17:18 +0200, Christoph Hellwig wrote:
On Mon, Apr 16, 2018 at 06:00:34PM -0700, Bart Van Assche wrote:
This patch on itself does not change the behavior of either ioctl. However, this patch is necessary to avoid that these ioctls fail with -EIO if sd_revalidate_disk() is called while these ioctls are in progress because the current zoned block command code temporarily clears data that is needed by these ioctls. See also commit 3ed05a987e0f ("blk-zoned: implement ioctls").
Hmm. I think we need to avoid clearing that data and update it using RCU instead. Calling blk_queue_enter before submitting bios is something that would make zone reporting very different from any other block layer user.
Hello Christoph,
Please have a look at generic_make_request(). I think that function shows that blk_queue_enter() is called anyway before .make_request_fn() is called.
Thanks,
Bart.