Message ID | 20230904143018.5709-2-shikemeng@huaweicloud.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Minor cleanups to fuse | expand |
On 9/4/23 16:30, Kemeng Shi wrote: > Current way to set FR_WAITING in fuse_simple_background: > fuse_simple_background > if (args->force) > fuse_request_alloc > /* need to increase num_waiting before request is queued */ > else > fuse_get_req > atomic_inc(&fc->num_waiting); > __set_bit(FR_WAITING, &req->flags); > > fuse_request_queue_background > if (!test_bit(FR_WAITING, &req->flags) > __set_bit(FR_WAITING, &req->flags); > atomic_inc(&fc->num_waiting); > > We only need to increase num_waiting for force allocated reqeust in > fuse_request_queue_background. Simply increase num_waiting in force block > to remove unnecessary test_bit(FR_WAITING). > This patch also makes it more intuitive to remove FR_WATING usage in next > commit. Very minor nit 'FR_WAITING'. The patch looks good to me. > > Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com> > --- > fs/fuse/dev.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c > index 1a8f82f478cb..59e1357d4880 100644 > --- a/fs/fuse/dev.c > +++ b/fs/fuse/dev.c > @@ -528,10 +528,6 @@ static bool fuse_request_queue_background(struct fuse_req *req) > bool queued = false; > > WARN_ON(!test_bit(FR_BACKGROUND, &req->flags)); > - if (!test_bit(FR_WAITING, &req->flags)) { > - __set_bit(FR_WAITING, &req->flags); > - atomic_inc(&fc->num_waiting); > - } > __set_bit(FR_ISREPLY, &req->flags); > spin_lock(&fc->bg_lock); > if (likely(fc->connected)) { > @@ -553,10 +549,14 @@ int fuse_simple_background(struct fuse_mount *fm, struct fuse_args *args, > struct fuse_req *req; > > if (args->force) { > + struct fuse_conn *fc = fm->fc; > + > WARN_ON(!args->nocreds); > req = fuse_request_alloc(fm, gfp_flags); > if (!req) > return -ENOMEM; > + atomic_inc(&fc->num_waiting); > + __set_bit(FR_WAITING, &req->flags); > __set_bit(FR_BACKGROUND, &req->flags); > } else { > WARN_ON(args->nocreds);
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index 1a8f82f478cb..59e1357d4880 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -528,10 +528,6 @@ static bool fuse_request_queue_background(struct fuse_req *req) bool queued = false; WARN_ON(!test_bit(FR_BACKGROUND, &req->flags)); - if (!test_bit(FR_WAITING, &req->flags)) { - __set_bit(FR_WAITING, &req->flags); - atomic_inc(&fc->num_waiting); - } __set_bit(FR_ISREPLY, &req->flags); spin_lock(&fc->bg_lock); if (likely(fc->connected)) { @@ -553,10 +549,14 @@ int fuse_simple_background(struct fuse_mount *fm, struct fuse_args *args, struct fuse_req *req; if (args->force) { + struct fuse_conn *fc = fm->fc; + WARN_ON(!args->nocreds); req = fuse_request_alloc(fm, gfp_flags); if (!req) return -ENOMEM; + atomic_inc(&fc->num_waiting); + __set_bit(FR_WAITING, &req->flags); __set_bit(FR_BACKGROUND, &req->flags); } else { WARN_ON(args->nocreds);
Current way to set FR_WAITING in fuse_simple_background: fuse_simple_background if (args->force) fuse_request_alloc /* need to increase num_waiting before request is queued */ else fuse_get_req atomic_inc(&fc->num_waiting); __set_bit(FR_WAITING, &req->flags); fuse_request_queue_background if (!test_bit(FR_WAITING, &req->flags) __set_bit(FR_WAITING, &req->flags); atomic_inc(&fc->num_waiting); We only need to increase num_waiting for force allocated reqeust in fuse_request_queue_background. Simply increase num_waiting in force block to remove unnecessary test_bit(FR_WAITING). This patch also makes it more intuitive to remove FR_WATING usage in next commit. Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com> --- fs/fuse/dev.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)