summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Ellenberg <lars.ellenberg@linbit.com>2010-10-19 12:08:13 +0200
committerPhilipp Reisner <philipp.reisner@linbit.com>2010-10-22 15:53:10 +0200
commitfb2c7a10eec051317ff091b2cb2d73c5ecd98c19 (patch)
tree71780ba6a3d19b9a79e076d99b2a4e85e8e04db9
parentdrbd: fix a misleading printk (diff)
downloadlinux-fb2c7a10eec051317ff091b2cb2d73c5ecd98c19.tar.xz
linux-fb2c7a10eec051317ff091b2cb2d73c5ecd98c19.zip
drbd: rate limit an error message
If we don't rate limit it, and you happen to log err level messages via serial console, an IO error on a disconnected Primary may cause serious unresponsiveness. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
-rw-r--r--drivers/block/drbd/drbd_req.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
index d26b213dbf15..31d04b17c45f 100644
--- a/drivers/block/drbd/drbd_req.c
+++ b/drivers/block/drbd/drbd_req.c
@@ -813,7 +813,8 @@ static int drbd_make_request_common(struct drbd_conf *mdev, struct bio *bio)
mdev->state.conn >= C_CONNECTED));
if (!(local || remote) && !is_susp(mdev->state)) {
- dev_err(DEV, "IO ERROR: neither local nor remote disk\n");
+ if (__ratelimit(&drbd_ratelimit_state))
+ dev_err(DEV, "IO ERROR: neither local nor remote disk\n");
goto fail_free_complete;
}