Commit a897b666 authored by Josef Bacik's avatar Josef Bacik Committed by Jens Axboe

nbd: use dev_err_ratelimited in io path

While doing stress tests we noticed that we'd get a lot of dmesg spam if
we suddenly disconnected the nbd device out of band.  Rate limit the
messages in the io path in order to deal with this.
Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 20032ec3
...@@ -219,7 +219,7 @@ static int sock_xmit(struct nbd_device *nbd, int index, int send, void *buf, ...@@ -219,7 +219,7 @@ static int sock_xmit(struct nbd_device *nbd, int index, int send, void *buf,
unsigned long pflags = current->flags; unsigned long pflags = current->flags;
if (unlikely(!sock)) { if (unlikely(!sock)) {
dev_err(disk_to_dev(nbd->disk), dev_err_ratelimited(disk_to_dev(nbd->disk),
"Attempted %s on closed socket in sock_xmit\n", "Attempted %s on closed socket in sock_xmit\n",
(send ? "send" : "recv")); (send ? "send" : "recv"));
return -EINVAL; return -EINVAL;
...@@ -302,7 +302,7 @@ static int nbd_send_cmd(struct nbd_device *nbd, struct nbd_cmd *cmd, int index) ...@@ -302,7 +302,7 @@ static int nbd_send_cmd(struct nbd_device *nbd, struct nbd_cmd *cmd, int index)
result = sock_xmit(nbd, index, 1, &request, sizeof(request), result = sock_xmit(nbd, index, 1, &request, sizeof(request),
(type == NBD_CMD_WRITE) ? MSG_MORE : 0); (type == NBD_CMD_WRITE) ? MSG_MORE : 0);
if (result <= 0) { if (result <= 0) {
dev_err(disk_to_dev(nbd->disk), dev_err_ratelimited(disk_to_dev(nbd->disk),
"Send control failed (result %d)\n", result); "Send control failed (result %d)\n", result);
return -EIO; return -EIO;
} }
...@@ -501,14 +501,14 @@ static void nbd_handle_cmd(struct nbd_cmd *cmd, int index) ...@@ -501,14 +501,14 @@ static void nbd_handle_cmd(struct nbd_cmd *cmd, int index)
struct nbd_sock *nsock; struct nbd_sock *nsock;
if (index >= nbd->num_connections) { if (index >= nbd->num_connections) {
dev_err(disk_to_dev(nbd->disk), dev_err_ratelimited(disk_to_dev(nbd->disk),
"Attempted send on invalid socket\n"); "Attempted send on invalid socket\n");
goto error_out; goto error_out;
} }
if (test_bit(NBD_DISCONNECTED, &nbd->runtime_flags)) { if (test_bit(NBD_DISCONNECTED, &nbd->runtime_flags)) {
dev_err(disk_to_dev(nbd->disk), dev_err_ratelimited(disk_to_dev(nbd->disk),
"Attempted send on closed socket\n"); "Attempted send on closed socket\n");
goto error_out; goto error_out;
} }
...@@ -519,8 +519,8 @@ static void nbd_handle_cmd(struct nbd_cmd *cmd, int index) ...@@ -519,8 +519,8 @@ static void nbd_handle_cmd(struct nbd_cmd *cmd, int index)
if (req->cmd_type == REQ_TYPE_FS && if (req->cmd_type == REQ_TYPE_FS &&
rq_data_dir(req) == WRITE && rq_data_dir(req) == WRITE &&
(nbd->flags & NBD_FLAG_READ_ONLY)) { (nbd->flags & NBD_FLAG_READ_ONLY)) {
dev_err(disk_to_dev(nbd->disk), dev_err_ratelimited(disk_to_dev(nbd->disk),
"Write on read-only\n"); "Write on read-only\n");
goto error_out; goto error_out;
} }
...@@ -530,13 +530,14 @@ static void nbd_handle_cmd(struct nbd_cmd *cmd, int index) ...@@ -530,13 +530,14 @@ static void nbd_handle_cmd(struct nbd_cmd *cmd, int index)
mutex_lock(&nsock->tx_lock); mutex_lock(&nsock->tx_lock);
if (unlikely(!nsock->sock)) { if (unlikely(!nsock->sock)) {
mutex_unlock(&nsock->tx_lock); mutex_unlock(&nsock->tx_lock);
dev_err(disk_to_dev(nbd->disk), dev_err_ratelimited(disk_to_dev(nbd->disk),
"Attempted send on closed socket\n"); "Attempted send on closed socket\n");
goto error_out; goto error_out;
} }
if (nbd_send_cmd(nbd, cmd, index) != 0) { if (nbd_send_cmd(nbd, cmd, index) != 0) {
dev_err(disk_to_dev(nbd->disk), "Request send failed\n"); dev_err_ratelimited(disk_to_dev(nbd->disk),
"Request send failed\n");
req->errors++; req->errors++;
nbd_end_request(cmd); nbd_end_request(cmd);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment