Re: [PATCH 4/6] fuse: Check for FR_SENT bit in fuse_dev_do_write()

From: Miklos Szeredi
Date: Wed Nov 07 2018 - 08:16:36 EST


On Tue, Nov 6, 2018 at 10:30 AM, Kirill Tkhai <ktkhai@xxxxxxxxxxxxx> wrote:
> It's not possible to have answer to a request,
> before the request is actually sent. Add sanity
> check for that.

It's checking for the impossible. That sometimes makes sense as a
WARN_ON() or in special cases a BUG_ON().


>
> Signed-off-by: Kirill Tkhai <ktkhai@xxxxxxxxxxxxx>
> ---
> fs/fuse/dev.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
> index 739968ee8b0c..c603f1ebf0fd 100644
> --- a/fs/fuse/dev.c
> +++ b/fs/fuse/dev.c
> @@ -1947,7 +1947,7 @@ static ssize_t fuse_dev_do_write(struct fuse_dev *fud,
> goto err_unlock_pq;
>
> req = request_find(fpq, oh.unique & ~FUSE_INT_REQ_BIT);
> - if (!req)
> + if (!req || !test_bit(FR_SENT, &req->flags))
> goto err_unlock_pq;
>
> /* Is it an interrupt reply ID? */
>