From: Lars Ellenberg Date: Mon, 27 Jan 2014 15:04:14 +0000 (+0100) Subject: drbd: stop the meta data sync timer before open coded meta data sync X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=fcb096740a13c839e16e6735ba486879b54bc861;p=deliverable%2Flinux.git drbd: stop the meta data sync timer before open coded meta data sync If we re-write all meta data due to resize, we have open-coded write-out of our meta data super block. Stop the md_sync_timer, it would just trigger scary but in this case spurious "timer expired" messages. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg --- diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c index 52221f67e395..133e9b37c6c2 100644 --- a/drivers/block/drbd/drbd_nl.c +++ b/drivers/block/drbd/drbd_nl.c @@ -967,6 +967,10 @@ drbd_determine_dev_size(struct drbd_device *device, enum dds_flags flags, struct if (la_size_changed || md_moved || rs) { u32 prev_flags; + /* We do some synchronous IO below, which may take some time. + * Clear the timer, to avoid scary "timer expired!" messages, + * "Superblock" is written out at least twice below, anyways. */ + del_timer(&device->md_sync_timer); drbd_al_shrink(device); /* All extents inactive. */ prev_flags = md->flags;