|
@@ -224,6 +224,10 @@ static void request_end(struct fuse_conn *fc, struct fuse_req *req)
|
|
|
fc->blocked = 0;
|
|
|
wake_up_all(&fc->blocked_waitq);
|
|
|
}
|
|
|
+ if (fc->num_background == FUSE_CONGESTION_THRESHOLD) {
|
|
|
+ clear_bdi_congested(&fc->bdi, READ);
|
|
|
+ clear_bdi_congested(&fc->bdi, WRITE);
|
|
|
+ }
|
|
|
fc->num_background--;
|
|
|
}
|
|
|
spin_unlock(&fc->lock);
|
|
@@ -378,6 +382,10 @@ static void request_send_nowait(struct fuse_conn *fc, struct fuse_req *req)
|
|
|
fc->num_background++;
|
|
|
if (fc->num_background == FUSE_MAX_BACKGROUND)
|
|
|
fc->blocked = 1;
|
|
|
+ if (fc->num_background == FUSE_CONGESTION_THRESHOLD) {
|
|
|
+ set_bdi_congested(&fc->bdi, READ);
|
|
|
+ set_bdi_congested(&fc->bdi, WRITE);
|
|
|
+ }
|
|
|
|
|
|
queue_request(fc, req);
|
|
|
spin_unlock(&fc->lock);
|