Re: [PATCH] nbd: ratelimit error msgs after socket close

From: Dan Streetman
Date: Tue Feb 02 2016 - 12:07:49 EST


Hi Markus,

just checking if you had any comments on this patch?

On Thu, Jan 14, 2016 at 1:42 PM, Dan Streetman
<dan.streetman@xxxxxxxxxxxxx> wrote:
> Make the "Attempted send on closed socket" error messages generated in
> nbd_request_handler() ratelimited.
>
> When the nbd socket is shutdown, the nbd_request_handler() function emits
> an error message for every request remaining in its queue. If the queue
> is large, this will spam a large amount of messages to the log. There's
> no need for a separate error message for each request, so this patch
> ratelimits it.
>
> In the specific case this was found, the system was virtual and the error
> messages were logged to the serial port, which overwhelmed it.
>
> Fixes: 4d48a542b427 ("nbd: fix I/O hang on disconnected nbds")
> Signed-off-by: Dan Streetman <dan.streetman@xxxxxxxxxxxxx>
> ---
> drivers/block/nbd.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
> index e4c5cc1..c65d41f 100644
> --- a/drivers/block/nbd.c
> +++ b/drivers/block/nbd.c
> @@ -618,8 +618,8 @@ static void nbd_request_handler(struct request_queue *q)
> req, req->cmd_type);
>
> if (unlikely(!nbd->sock)) {
> - dev_err(disk_to_dev(nbd->disk),
> - "Attempted send on closed socket\n");
> + dev_err_ratelimited(disk_to_dev(nbd->disk),
> + "Attempted send on closed socket\n");
> req->errors++;
> nbd_end_request(nbd, req);
> spin_lock_irq(q->queue_lock);
> --
> 2.5.0
>