Re: [PATCH v2] loop: avoid EAGAIN, if offset or block_size are changed

From: Jaegeuk Kim
Date: Mon Nov 25 2019 - 12:59:16 EST


On 11/19, Bart Van Assche wrote:
> On 5/17/19 5:53 PM, Jaegeuk Kim wrote:
> > This patch tries to avoid EAGAIN due to nrpages!=0 that was originally trying
> > to drop stale pages resulting in wrong data access.
> >
> > Report: https://bugs.chromium.org/p/chromium/issues/detail?id=938958#c38
>
> Please provide a more detailed commit description. What is wrong with the
> current implementation and why is the new behavior considered the correct
> behavior?

Some history would be:

Original bug fix is:
commit 5db470e229e2 ("loop: drop caches if offset or block_size are changed"),
which returns EAGAIN so that user land like Chrome would require enhancing their
error handling routines.

So, this patch tries to avoid EAGAIN while addressing the original bug.

>
> This patch moves draining code from before the following comment to after
> that comment:
>
> /* I/O need to be drained during transfer transition */
>
> Is that comment still correct or should it perhaps be updated?

IMHO, it's still valid.

>
> Thanks,
>

> Bart.