summaryrefslogtreecommitdiff
path: root/include/linux/zstd_errors.h
diff options
context:
space:
mode:
authorJoanne Koong <joannelkoong@gmail.com>2026-04-08 20:25:10 +0300
committerMiklos Szeredi <mszeredi@redhat.com>2026-06-15 15:06:15 +0300
commit31da059891bd3be9c6e59280b8e1777ead90db34 (patch)
treecc6d76fdb5779b0c326626bfa044462542585c0c /include/linux/zstd_errors.h
parent9fa4f7a53406430ee9982f2f636a15b338185122 (diff)
downloadlinux-31da059891bd3be9c6e59280b8e1777ead90db34.tar.xz
fuse: fix io-uring background queue dispatch on request completion
When a background request completes via the io_uring path, the background queue gets flushed to dispatch pending background requests, but this is done before the connection-level background counters (fc->num_background, fc->active_background) are properly accounted, which may reduce effective queue depth to one. The connection-level counters are decremented in fuse_request_end(), but flush_bg_queue() flushes the /dev/fuse path queue (fc->bg_queue), not the io_uring per-queue bg one, which means pending uring background requests on the queue are never dispatched in this path. Fix this by accounting the connection-level background counters first before flushing the queue's background queue. Since fuse_request_bg_finish() clears FR_BACKGROUND, fuse_request_end() will skip the background cleanup branch entirely, which avoids any double-decrements; it will call the wake_up(&req->waitq) branch but this is effectively a no-op as background requests have no waiters on req->waitq. Reviewed-by: Bernd Schubert <bernd@bsbernd.com> Fixes: 857b0263f30e ("fuse: Allow to queue bg requests through io-uring") Cc: stable@vger.kernel.org Signed-off-by: Joanne Koong <joannelkoong@gmail.com> Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'include/linux/zstd_errors.h')
0 files changed, 0 insertions, 0 deletions