diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index 81bb40778a5b..27357ee01fe5 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -615,7 +615,7 @@ static void request_wait_answer(struct fuse_req *req) struct fuse_iqueue *fiq = &fc->chan->iq; int err; - if (!fc->no_interrupt) { + if (!fc->chan->no_interrupt) { /* Any signal may interrupt this */ err = wait_event_interruptible(req->waitq, test_bit(FR_FINISHED, &req->flags)); @@ -2308,7 +2308,7 @@ static ssize_t fuse_dev_do_write(struct fuse_dev *fud, if (nbytes != sizeof(struct fuse_out_header)) err = -EINVAL; else if (oh.error == -ENOSYS) - fc->no_interrupt = 1; + fc->chan->no_interrupt = true; else if (oh.error == -EAGAIN) err = queue_interrupt(req); diff --git a/fs/fuse/fuse_dev_i.h b/fs/fuse/fuse_dev_i.h index 916aa9867147..5c31272a4902 100644 --- a/fs/fuse/fuse_dev_i.h +++ b/fs/fuse/fuse_dev_i.h @@ -128,6 +128,9 @@ struct fuse_chan { /** The number of requests waiting for completion */ atomic_t num_waiting; + /** Is interrupt not implemented by fs? */ + bool no_interrupt; + /* Use io_uring for communication */ unsigned int io_uring; diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index 701bb18dcb00..59bdabaf994b 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h @@ -659,9 +659,6 @@ struct fuse_conn { /** Is create not implemented by fs? */ unsigned no_create:1; - /** Is interrupt not implemented by fs? */ - unsigned no_interrupt:1; - /** Is bmap not implemented by fs? */ unsigned no_bmap:1;