Currently, if there are pending entries in the queue after the teardown timeout, the system keeps printing entry state information at very short intervals (FUSE_URING_TEARDOWN_INTERVAL). This can flood the system logs. Additionally, ring->stop_debug_log is set but not used. Clean up unused ring->stop_debug_log, update teardown time after each log entry state, and change the log entry state interval to FUSE_URING_TEARDOWN_TIMEOUT. Signed-off-by: Long Li --- v1->v2: Update teardown time to limit entry state output interval fs/fuse/dev_uring.c | 7 ++++--- fs/fuse/dev_uring_i.h | 5 ----- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/fs/fuse/dev_uring.c b/fs/fuse/dev_uring.c index 5ceb217ced1b..68d2fbdc3a7c 100644 --- a/fs/fuse/dev_uring.c +++ b/fs/fuse/dev_uring.c @@ -426,7 +426,6 @@ static void fuse_uring_log_ent_state(struct fuse_ring *ring) } spin_unlock(&queue->lock); } - ring->stop_debug_log = 1; } static void fuse_uring_async_stop_queues(struct work_struct *work) @@ -453,9 +452,11 @@ static void fuse_uring_async_stop_queues(struct work_struct *work) * If there are still queue references left */ if (atomic_read(&ring->queue_refs) > 0) { - if (time_after(jiffies, - ring->teardown_time + FUSE_URING_TEARDOWN_TIMEOUT)) + if (time_after(jiffies, ring->teardown_time + + FUSE_URING_TEARDOWN_TIMEOUT)) { fuse_uring_log_ent_state(ring); + ring->teardown_time = jiffies; + } schedule_delayed_work(&ring->async_teardown_work, FUSE_URING_TEARDOWN_INTERVAL); diff --git a/fs/fuse/dev_uring_i.h b/fs/fuse/dev_uring_i.h index 51a563922ce1..4cd3cbd51c7a 100644 --- a/fs/fuse/dev_uring_i.h +++ b/fs/fuse/dev_uring_i.h @@ -117,11 +117,6 @@ struct fuse_ring { struct fuse_ring_queue **queues; - /* - * Log ring entry states on stop when entries cannot be released - */ - unsigned int stop_debug_log : 1; - wait_queue_head_t stop_waitq; /* async tear down */ -- 2.39.2