Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 85f4cc17 authored by Philipp Reisner's avatar Philipp Reisner Committed by Jens Axboe
Browse files

drbd: Initialize all members of sync_conf to their defaults [Bugz 315]



Signed-off-by: default avatarPhilipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: default avatarLars Ellenberg <lars.ellenberg@linbit.com>
Cc: stable@kernel.org
Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
parent 6710a576
Loading
Loading
Loading
Loading
+18 −3
Original line number Diff line number Diff line
@@ -2660,9 +2660,24 @@ static void drbd_unplug_fn(struct request_queue *q)

static void drbd_set_defaults(struct drbd_conf *mdev)
{
	mdev->sync_conf.after      = DRBD_AFTER_DEF;
	mdev->sync_conf.rate       = DRBD_RATE_DEF;
	mdev->sync_conf.al_extents = DRBD_AL_EXTENTS_DEF;
	/* This way we get a compile error when sync_conf grows,
	   and we forgot to initialize it here */
	mdev->sync_conf = (struct syncer_conf) {
		/* .rate = */		DRBD_RATE_DEF,
		/* .after = */		DRBD_AFTER_DEF,
		/* .al_extents = */	DRBD_AL_EXTENTS_DEF,
		/* .dp_volume = */	DRBD_DP_VOLUME_DEF,
		/* .dp_interval = */	DRBD_DP_INTERVAL_DEF,
		/* .throttle_th = */	DRBD_RS_THROTTLE_TH_DEF,
		/* .hold_off_th = */	DRBD_RS_HOLD_OFF_TH_DEF,
		/* .verify_alg = */	{}, 0,
		/* .cpu_mask = */	{}, 0,
		/* .csums_alg = */	{}, 0,
		/* .use_rle = */	0
	};

	/* Have to use that way, because the layout differs between
	   big endian and little endian */
	mdev->state = (union drbd_state) {
		{ .role = R_SECONDARY,
		  .peer = R_UNKNOWN,