aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block
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 /drivers/block
parentbc571b8cb930ea78207851dd38b5a435fcb8891c (diff)
downloadkernel_samsung_smdk4412-fb2c7a10eec051317ff091b2cb2d73c5ecd98c19.zip
kernel_samsung_smdk4412-fb2c7a10eec051317ff091b2cb2d73c5ecd98c19.tar.gz
kernel_samsung_smdk4412-fb2c7a10eec051317ff091b2cb2d73c5ecd98c19.tar.bz2
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>
Diffstat (limited to 'drivers/block')
-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 d26b213..31d04b1 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;
}