Skip to content

Commit

Permalink
drbd: Initialize all members of sync_conf to their defaults [Bugz 315]
Browse files Browse the repository at this point in the history
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Cc: stable@kernel.org
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
  • Loading branch information
Philipp Reisner authored and Jens Axboe committed Aug 7, 2010
1 parent 6710a57 commit 85f4cc1
Showing 1 changed file with 18 additions and 3 deletions.
21 changes: 18 additions & 3 deletions drivers/block/drbd/drbd_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 85f4cc1

Please sign in to comment.