All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Christoph Böhmwalder" <christoph.boehmwalder@linbit.com>,
	"Jens Axboe" <axboe@kernel.dk>
Cc: oe-kbuild-all@lists.linux.dev, drbd-dev@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	"Lars Ellenberg" <lars.ellenberg@linbit.com>,
	"Philipp Reisner" <philipp.reisner@linbit.com>,
	linux-block@vger.kernel.org,
	"Christoph Böhmwalder" <christoph.boehmwalder@linbit.com>
Subject: Re: [PATCH v3 20/20] drbd: remove BROKEN for DRBD
Date: Wed, 11 Nov 2026 14:34:47 +0800	[thread overview]
Message-ID: <202611111410.3QaA5yy6-lkp@intel.com> (raw)
In-Reply-To: <20261110162646.3028472-21-christoph.boehmwalder@linbit.com>

Hi Christoph,

kernel test robot noticed the following build warnings:

[auto build test WARNING on aa7014f8d7565cfea117eac36a5de0a05eba65a4]

url:    https://github.com/intel-lab-lkp/linux/commits/Christoph-B-hmwalder/drbd-mark-as-BROKEN-during-DRBD-9-rework/20261110-172626
base:   aa7014f8d7565cfea117eac36a5de0a05eba65a4
patch link:    https://lore.kernel.org/r/20261110162646.3028472-21-christoph.boehmwalder%40linbit.com
patch subject: [PATCH v3 20/20] drbd: remove BROKEN for DRBD
config: xtensa-allyesconfig (https://download.01.org/0day-ci/archive/20261111/202611111410.3QaA5yy6-lkp@intel.com/config)
compiler: xtensa-linux-gcc (GCC) 16.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261111/202611111410.3QaA5yy6-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202611111410.3QaA5yy6-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/block/drbd/drbd_nl_84.c: In function 'compat84_overlay':
>> drivers/block/drbd/drbd_nl_84.c:1125:1: warning: the frame size of 1856 bytes is larger than 1536 bytes [-Wframe-larger-than=]
    1125 | }
         | ^


vim +1125 drivers/block/drbd/drbd_nl_84.c

4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   693  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   694  /*
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   695   * The generated *_from_attrs() parsers fill the vendored v1 wire
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   696   * structs (struct disk_conf, struct net_conf, ...), whose field sets
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   697   * differ from the core's neutral structs, so every set below parses into
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   698   * a local v1 struct and translates field by field into dst.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   699   *
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   700   * For the persistent config sets (disk_conf, net_conf, res_opts), dst
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   701   * already holds the object's current values. The parser only writes a
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   702   * field whose attribute is present, so the local struct is pre-seeded
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   703   * from dst and copied back whole: an absent attribute round-trips its
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   704   * old value, preserving drbd_nl.h's "absent attributes leave dst
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   705   * untouched" contract. Most one-shot action parms start from a zeroed
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   706   * dst, so a zeroed local struct already matches; resize_parms and
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   707   * start_ov_parms do not, and are pre-seeded the same way.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   708   *
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   709   * The v1 disk_conf treats backing_dev/meta_dev/meta_dev_idx as required, so
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   710   * a plain disk-options call parses with err == -ENOMSG while every other
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   711   * field is still filled in. drbd_nl.c tolerates -ENOMSG as non-fatal, so
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   712   * each case copies back (and stashes) before returning err, never on an
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   713   * early return.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   714   */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   715  static int compat84_overlay(struct drbd_adm_ctx *ctx, enum drbd_nl_attr_set set, void *dst)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   716  {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   717  	struct genl_info *info = compat84_req(ctx)->info;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   718  	struct compat84_req *req = compat84_req(ctx);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   719  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   720  	switch (set) {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   721  	case DRBD_NL_SET_DISK_CONF: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   722  		struct drbd_disk_conf *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   723  		struct disk_conf c = {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   724  			.meta_dev_idx			= d->meta_dev_idx,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   725  			.disk_size			= d->disk_size,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   726  			.on_io_error			= d->on_io_error,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   727  			.resync_after			= d->resync_after,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   728  			.al_extents			= d->al_extents,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   729  			.disk_barrier			= d->disk_barrier,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   730  			.disk_flushes			= d->disk_flushes,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   731  			.disk_drain			= d->disk_drain,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   732  			.md_flushes			= d->md_flushes,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   733  			.disk_timeout			= d->disk_timeout,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   734  			.read_balancing			= d->read_balancing,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   735  			.al_updates			= d->al_updates,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   736  			.discard_zeroes_if_aligned	= d->discard_zeroes_if_aligned,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   737  			.rs_discard_granularity		= d->rs_discard_granularity,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   738  			.disable_write_same		= d->disable_write_same,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   739  		};
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   740  		struct nlattr **ntb;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   741  		int err, ntb_err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   742  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   743  		memcpy(c.backing_dev, d->backing_dev, sizeof(c.backing_dev));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   744  		c.backing_dev_len = d->backing_dev_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   745  		memcpy(c.meta_dev, d->meta_dev, sizeof(c.meta_dev));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   746  		c.meta_dev_len = d->meta_dev_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   747  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   748  		err = disk_conf_from_attrs(&c, info);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   749  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   750  		/*
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   751  		 * Copy back and stash before returning err: -ENOMSG from a
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   752  		 * plain disk-options call (see above) must not discard the
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   753  		 * fields it did send. Any other error leaves c at its
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   754  		 * pre-seeded values, so copying back is a no-op.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   755  		 */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   756  		memcpy(d->backing_dev, c.backing_dev, sizeof(d->backing_dev));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   757  		d->backing_dev_len = c.backing_dev_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   758  		memcpy(d->meta_dev, c.meta_dev, sizeof(d->meta_dev));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   759  		d->meta_dev_len = c.meta_dev_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   760  		d->meta_dev_idx = c.meta_dev_idx;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   761  		d->disk_size = c.disk_size;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   762  		d->on_io_error = c.on_io_error;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   763  		d->resync_after = c.resync_after;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   764  		d->al_extents = c.al_extents;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   765  		d->disk_barrier = c.disk_barrier;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   766  		d->disk_flushes = c.disk_flushes;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   767  		d->disk_drain = c.disk_drain;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   768  		d->md_flushes = c.md_flushes;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   769  		d->disk_timeout = c.disk_timeout;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   770  		d->read_balancing = c.read_balancing;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   771  		d->al_updates = c.al_updates;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   772  		d->discard_zeroes_if_aligned = c.discard_zeroes_if_aligned;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   773  		d->rs_discard_granularity = c.rs_discard_granularity;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   774  		d->disable_write_same = c.disable_write_same;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   775  		/* max_bio_bvecs: no DRBD 9 equivalent, dropped. */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   776  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   777  		/*
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   778  		 * The resync-tuning fields belong to struct drbd_peer_device_conf,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   779  		 * fencing to net_conf.fencing_policy; neither is reachable
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   780  		 * through this dst. Re-parse the nested table for per-field
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   781  		 * presence and stash them for the attach/disk-options
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   782  		 * handlers.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   783  		 */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   784  		ntb_err = disk_conf_ntb_from_attrs(&ntb, info);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   785  		if ((!ntb_err || ntb_err == -ENOMSG) && ntb) {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   786  			req->peer_device_conf_84.resync_rate = c.resync_rate;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   787  			req->peer_device_conf_84.has_resync_rate =
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   788  				ntb[DRBD_A_DISK_CONF_RESYNC_RATE] != NULL;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   789  			req->peer_device_conf_84.c_plan_ahead = c.c_plan_ahead;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   790  			req->peer_device_conf_84.has_c_plan_ahead =
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   791  				ntb[DRBD_A_DISK_CONF_C_PLAN_AHEAD] != NULL;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   792  			req->peer_device_conf_84.c_delay_target = c.c_delay_target;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   793  			req->peer_device_conf_84.has_c_delay_target =
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   794  				ntb[DRBD_A_DISK_CONF_C_DELAY_TARGET] != NULL;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   795  			req->peer_device_conf_84.c_fill_target = c.c_fill_target;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   796  			req->peer_device_conf_84.has_c_fill_target =
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   797  				ntb[DRBD_A_DISK_CONF_C_FILL_TARGET] != NULL;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   798  			req->peer_device_conf_84.c_max_rate = c.c_max_rate;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   799  			req->peer_device_conf_84.has_c_max_rate =
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   800  				ntb[DRBD_A_DISK_CONF_C_MAX_RATE] != NULL;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   801  			req->peer_device_conf_84.c_min_rate = c.c_min_rate;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   802  			req->peer_device_conf_84.has_c_min_rate =
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   803  				ntb[DRBD_A_DISK_CONF_C_MIN_RATE] != NULL;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   804  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   805  			req->fencing_policy_84 = c.fencing;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   806  			req->has_fencing_policy_84 =
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   807  				ntb[DRBD_A_DISK_CONF_FENCING] != NULL;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   808  		}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   809  		kfree(ntb);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   810  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   811  		return err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   812  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   813  	case DRBD_NL_SET_NET_CONF: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   814  		struct drbd_net_conf *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   815  		struct net_conf c = {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   816  			.wire_protocol			= d->wire_protocol,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   817  			.connect_int			= d->connect_int,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   818  			.timeout			= d->timeout,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   819  			.ping_int			= d->ping_int,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   820  			.ping_timeo			= d->ping_timeo,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   821  			.sndbuf_size			= d->sndbuf_size,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   822  			.rcvbuf_size			= d->rcvbuf_size,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   823  			.ko_count			= d->ko_count,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   824  			.max_buffers			= d->max_buffers,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   825  			.max_epoch_size			= d->max_epoch_size,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   826  			.after_sb_0p			= d->after_sb_0p,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   827  			.after_sb_1p			= d->after_sb_1p,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   828  			.after_sb_2p			= d->after_sb_2p,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   829  			.rr_conflict			= d->rr_conflict,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   830  			.on_congestion			= d->on_congestion,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   831  			.cong_fill			= d->cong_fill,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   832  			.cong_extents			= d->cong_extents,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   833  			.two_primaries			= d->two_primaries,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   834  			.tcp_cork			= d->tcp_cork,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   835  			.always_asbp			= d->always_asbp,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   836  			.use_rle			= d->use_rle,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   837  			.csums_after_crash_only		= d->csums_after_crash_only,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   838  			.sock_check_timeo		= d->sock_check_timeo,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   839  		};
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   840  		struct nlattr **ntb;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   841  		int err, ntb_err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   842  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   843  		memcpy(c.shared_secret, d->shared_secret, sizeof(c.shared_secret));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   844  		c.shared_secret_len = d->shared_secret_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   845  		memcpy(c.cram_hmac_alg, d->cram_hmac_alg, sizeof(c.cram_hmac_alg));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   846  		c.cram_hmac_alg_len = d->cram_hmac_alg_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   847  		memcpy(c.integrity_alg, d->integrity_alg, sizeof(c.integrity_alg));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   848  		c.integrity_alg_len = d->integrity_alg_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   849  		memcpy(c.verify_alg, d->verify_alg, sizeof(c.verify_alg));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   850  		c.verify_alg_len = d->verify_alg_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   851  		memcpy(c.csums_alg, d->csums_alg, sizeof(c.csums_alg));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   852  		c.csums_alg_len = d->csums_alg_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   853  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   854  		err = net_conf_from_attrs(&c, info);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   855  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   856  		/* Copy back and stash before returning err, as for DISK_CONF. */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   857  		memcpy(d->shared_secret, c.shared_secret, sizeof(d->shared_secret));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   858  		d->shared_secret_len = c.shared_secret_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   859  		memcpy(d->cram_hmac_alg, c.cram_hmac_alg, sizeof(d->cram_hmac_alg));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   860  		d->cram_hmac_alg_len = c.cram_hmac_alg_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   861  		memcpy(d->integrity_alg, c.integrity_alg, sizeof(d->integrity_alg));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   862  		d->integrity_alg_len = c.integrity_alg_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   863  		memcpy(d->verify_alg, c.verify_alg, sizeof(d->verify_alg));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   864  		d->verify_alg_len = c.verify_alg_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   865  		memcpy(d->csums_alg, c.csums_alg, sizeof(d->csums_alg));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   866  		d->csums_alg_len = c.csums_alg_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   867  		d->wire_protocol = c.wire_protocol;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   868  		d->connect_int = c.connect_int;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   869  		d->timeout = c.timeout;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   870  		d->ping_int = c.ping_int;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   871  		d->ping_timeo = c.ping_timeo;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   872  		d->sndbuf_size = c.sndbuf_size;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   873  		d->rcvbuf_size = c.rcvbuf_size;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   874  		d->ko_count = c.ko_count;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   875  		d->max_buffers = c.max_buffers;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   876  		d->max_epoch_size = c.max_epoch_size;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   877  		d->after_sb_0p = c.after_sb_0p;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   878  		d->after_sb_1p = c.after_sb_1p;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   879  		d->after_sb_2p = c.after_sb_2p;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   880  		d->rr_conflict = c.rr_conflict;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   881  		d->on_congestion = c.on_congestion;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   882  		d->cong_fill = c.cong_fill;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   883  		d->cong_extents = c.cong_extents;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   884  		d->two_primaries = c.two_primaries;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   885  		d->tcp_cork = c.tcp_cork;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   886  		d->always_asbp = c.always_asbp;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   887  		d->use_rle = c.use_rle;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   888  		d->csums_after_crash_only = c.csums_after_crash_only;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   889  		d->sock_check_timeo = c.sock_check_timeo;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   890  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   891  		/*
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   892  		 * fencing is a disk option in 8.4, so "net-options
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   893  		 * --set-defaults" must not reset it: keep the live value.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   894  		 * drbd_adm_net_opts() holds conf_update.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   895  		 */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   896  		if (ctx->set_defaults && ctx->connection) {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   897  			struct drbd_net_conf *old;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   898  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   899  			rcu_read_lock();
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   900  			old = rcu_dereference(ctx->connection->transport.net_conf);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   901  			if (old)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   902  				d->fencing_policy = old->fencing_policy;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   903  			rcu_read_unlock();
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   904  		}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   905  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   906  		/*
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   907  		 * unplug_watermark is dropped: no DRBD 9 code reads it, and
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   908  		 * net_conf is connection-scoped while disk_conf, its DRBD 9
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   909  		 * home, is per device. discard_my_data/tentative belong to
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   910  		 * struct drbd_connect_parms; stash them for the connect handler.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   911  		 */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   912  		ntb_err = net_conf_ntb_from_attrs(&ntb, info);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   913  		if ((!ntb_err || ntb_err == -ENOMSG) && ntb) {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   914  			req->connect_parms_84.discard_my_data = c.discard_my_data;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   915  			req->connect_parms_84.has_discard_my_data =
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   916  				ntb[DRBD_A_NET_CONF_DISCARD_MY_DATA] != NULL;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   917  			req->connect_parms_84.tentative = c.tentative;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   918  			req->connect_parms_84.has_tentative =
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   919  				ntb[DRBD_A_NET_CONF_TENTATIVE] != NULL;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   920  		}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   921  		kfree(ntb);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   922  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   923  		/*
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   924  		 * fencing lives in the v1 disk_conf on the wire but in
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   925  		 * drbd_net_conf.fencing_policy on DRBD 9. The attach/disk-options
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   926  		 * handler stashed it while parsing disk_conf and re-enters
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   927  		 * this overlay for NET_CONF once it has the connection. A
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   928  		 * real NET_CONF request never has this flag set.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   929  		 */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   930  		if (req->has_fencing_policy_84)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   931  			d->fencing_policy = req->fencing_policy_84;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   932  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   933  		/*
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   934  		 * DRBD 9 requires a connection name; v1 has no such concept.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   935  		 * Default it only for a freshly created connection (name_len
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   936  		 * == 0), matching the name drbd9 drbdsetup's own compat84 shim
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   937  		 * passes (--_name=remote).
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   938  		 */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   939  		if (!d->name_len) {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   940  			static const char v1_conn_name[] = "remote";
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   941  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   942  			strscpy(d->name, v1_conn_name, sizeof(d->name));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   943  			d->name_len = strlen(v1_conn_name);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   944  		}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   945  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   946  		return err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   947  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   948  	case DRBD_NL_SET_RES_OPTS: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   949  		struct drbd_res_opts *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   950  		struct res_opts c = {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   951  			.on_no_data = d->on_no_data,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   952  		};
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   953  		int err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   954  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   955  		memcpy(c.cpu_mask, d->cpu_mask, sizeof(c.cpu_mask));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   956  		c.cpu_mask_len = d->cpu_mask_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   957  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   958  		err = res_opts_from_attrs(&c, info);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   959  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   960  		/*
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   961  		 * The other fourteen DRBD 9 res_opts fields have no v1
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   962  		 * attribute, so v1's --set-defaults must not reset them
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   963  		 * either: that would drop drbd8_compat_mode and
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   964  		 * explicit_drbd8_compat and turn auto_promote back on.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   965  		 * drbd_adm_resource_opts() holds adm_mutex, so the live
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   966  		 * res_opts are stable here.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   967  		 */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   968  		if (ctx->set_defaults && ctx->resource)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   969  			*d = ctx->resource->res_opts;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   970  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   971  		/* Copy back before returning err, as for DISK_CONF. */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   972  		memcpy(d->cpu_mask, c.cpu_mask, sizeof(d->cpu_mask));
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   973  		d->cpu_mask_len = c.cpu_mask_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   974  		d->on_no_data = c.on_no_data;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   975  		return err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   976  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   977  	case DRBD_NL_SET_SET_ROLE_PARMS: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   978  		struct drbd_set_role_parms *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   979  		struct set_role_parms c = { };
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   980  		int err = set_role_parms_from_attrs(&c, info);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   981  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   982  		if (err)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   983  			return err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   984  		/* v1's assume_uptodate is drbd-utils 8.9.x's wire name for --force. */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   985  		d->force = c.assume_uptodate;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   986  		return 0;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   987  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   988  	case DRBD_NL_SET_RESIZE_PARMS: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   989  		struct drbd_resize_parms *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   990  		/* drbd_adm_resize() pre-fills the current AL layout. */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   991  		struct resize_parms c = {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   992  			.resize_size = d->resize_size,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   993  			.resize_force = d->resize_force,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   994  			.no_resync = d->no_resync,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   995  			.al_stripes = d->al_stripes,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   996  			.al_stripe_size = d->al_stripe_size,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   997  		};
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   998  		int err = resize_parms_from_attrs(&c, info);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10   999  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1000  		if (err)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1001  			return err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1002  		d->resize_size = c.resize_size;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1003  		d->resize_force = c.resize_force;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1004  		d->no_resync = c.no_resync;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1005  		d->al_stripes = c.al_stripes;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1006  		d->al_stripe_size = c.al_stripe_size;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1007  		return 0;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1008  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1009  	case DRBD_NL_SET_START_OV_PARMS: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1010  		struct drbd_start_ov_parms *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1011  		/* drbd_adm_start_ov() pre-fills the resume position. */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1012  		struct start_ov_parms c = {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1013  			.ov_start_sector = d->ov_start_sector,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1014  			.ov_stop_sector = d->ov_stop_sector,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1015  		};
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1016  		int err = start_ov_parms_from_attrs(&c, info);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1017  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1018  		if (err)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1019  			return err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1020  		d->ov_start_sector = c.ov_start_sector;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1021  		d->ov_stop_sector = c.ov_stop_sector;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1022  		return 0;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1023  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1024  	case DRBD_NL_SET_NEW_C_UUID_PARMS: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1025  		struct drbd_new_c_uuid_parms *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1026  		struct new_c_uuid_parms c = { };
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1027  		int err = new_c_uuid_parms_from_attrs(&c, info);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1028  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1029  		if (err)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1030  			return err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1031  		d->clear_bm = c.clear_bm;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1032  		/* force_resync: DRBD 9 only, no v1 attribute; leave untouched. */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1033  		return 0;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1034  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1035  	case DRBD_NL_SET_DISCONNECT_PARMS: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1036  		struct drbd_disconnect_parms *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1037  		struct disconnect_parms c = { };
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1038  		int err = disconnect_parms_from_attrs(&c, info);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1039  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1040  		if (err)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1041  			return err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1042  		d->force_disconnect = c.force_disconnect;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1043  		return 0;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1044  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1045  	case DRBD_NL_SET_DETACH_PARMS: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1046  		struct drbd_detach_parms *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1047  		struct detach_parms c = { };
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1048  		int err = detach_parms_from_attrs(&c, info);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1049  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1050  		if (err)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1051  			return err;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1052  		d->force_detach = c.force_detach;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1053  		/* intentional_diskless_detach: DRBD 9 only; leave untouched. */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1054  		return 0;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1055  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1056  	case DRBD_NL_SET_PEER_DEVICE_CONF: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1057  		struct drbd_peer_device_conf *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1058  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1059  		/*
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1060  		 * Not parsed from the wire: the DISK_CONF case stashed these
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1061  		 * while parsing the disk_conf that carried them. The
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1062  		 * attach/disk-options handler re-enters overlay() for
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1063  		 * PEER_DEVICE_CONF once it has the peer device.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1064  		 */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1065  		if (req->peer_device_conf_84.has_resync_rate)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1066  			d->resync_rate = req->peer_device_conf_84.resync_rate;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1067  		if (req->peer_device_conf_84.has_c_plan_ahead)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1068  			d->c_plan_ahead = req->peer_device_conf_84.c_plan_ahead;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1069  		if (req->peer_device_conf_84.has_c_delay_target)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1070  			d->c_delay_target = req->peer_device_conf_84.c_delay_target;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1071  		if (req->peer_device_conf_84.has_c_fill_target)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1072  			d->c_fill_target = req->peer_device_conf_84.c_fill_target;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1073  		if (req->peer_device_conf_84.has_c_max_rate)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1074  			d->c_max_rate = req->peer_device_conf_84.c_max_rate;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1075  		if (req->peer_device_conf_84.has_c_min_rate)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1076  			d->c_min_rate = req->peer_device_conf_84.c_min_rate;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1077  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1078  		return 0;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1079  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1080  	case DRBD_NL_SET_PATH_PARMS: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1081  		struct drbd_path_parms *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1082  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1083  		/*
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1084  		 * v1 carries the endpoint addresses in DRBD_NLA_CFG_CONTEXT,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1085  		 * parsed once per request into req; drbd_adm_new_path()
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1086  		 * calls here once per path.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1087  		 */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1088  		if (!req->ctx_my_addr_len || !req->ctx_peer_addr_len)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1089  			return -ENOMSG;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1090  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1091  		memcpy(d->my_addr, req->ctx_my_addr, req->ctx_my_addr_len);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1092  		d->my_addr_len = req->ctx_my_addr_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1093  		memcpy(d->peer_addr, req->ctx_peer_addr, req->ctx_peer_addr_len);
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1094  		d->peer_addr_len = req->ctx_peer_addr_len;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1095  		return 0;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1096  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1097  	case DRBD_NL_SET_CONNECT_PARMS: {
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1098  		struct drbd_connect_parms *d = dst;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1099  
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1100  		/*
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1101  		 * Stashed by the NET_CONF case; dst is a fresh zeroed struct,
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1102  		 * so an unsent field already defaults to false.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1103  		 */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1104  		if (req->connect_parms_84.has_discard_my_data)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1105  			d->discard_my_data = req->connect_parms_84.discard_my_data;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1106  		if (req->connect_parms_84.has_tentative)
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1107  			d->tentative = req->connect_parms_84.tentative;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1108  		return 0;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1109  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1110  	case DRBD_NL_SET_DEVICE_CONF:
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1111  	case DRBD_NL_SET_INVALIDATE_PARMS:
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1112  	case DRBD_NL_SET_INVALIDATE_PEER_PARMS:
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1113  	case DRBD_NL_SET_FORGET_PEER_PARMS:
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1114  	case DRBD_NL_SET_RENAME_RESOURCE_PARMS:
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1115  	case DRBD_NL_SET_SUSPEND_IO_PARMS:
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1116  	case DRBD_NL_SET_CBT_START_PARMS:
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1117  		/* No v1 counterpart: report a missing required attribute
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1118  		 * rather than silently proceeding with defaults.
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1119  		 */
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1120  		return -ENOMSG;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1121  	case __DRBD_NL_SET_MAX:
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1122  		break;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1123  	}
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1124  	return -EINVAL;
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10 @1125  }
4f5fcbdce4b889 Christoph Böhmwalder 2026-11-10  1126  

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

      parent reply	other threads:[~2026-11-11  6:35 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-10 16:26 [PATCH v3 00/20] drbd: DRBD 9 rework Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 01/20] drbd: mark as BROKEN during " Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 02/20] drbd: extend wire protocol definitions for DRBD 9 Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 03/20] drbd: introduce DRBD 9 on-disk metadata format Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 04/20] drbd: add transport layer abstraction Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 05/20] drbd: add TCP transport implementation Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 06/20] drbd: add DAX/PMEM support for metadata access Christoph Böhmwalder
2026-11-10 16:55   ` sashiko-bot
2026-11-10 16:26 ` [PATCH v3 07/20] drbd: add optional compatibility layer for DRBD 8.4 Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 08/20] drbd: add application/resync IO synchronization documentation Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 09/20] drbd: rework sender for DRBD 9 multi-peer Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 10/20] drbd: replace per-device state model with multi-peer data structures Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 11/20] drbd: rewrite state machine for DRBD 9 multi-peer clusters Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 12/20] drbd: rework activity log and bitmap for multi-peer replication Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 13/20] drbd: rework request processing for DRBD 9 multi-peer IO Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 14/20] drbd: rework module core for DRBD 9 transport and multi-peer Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 15/20] drbd: rework receiver for DRBD 9 transport and multi-peer protocol Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 16/20] drbd: rework the netlink core for DRBD 9 Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 17/20] drbd: serve the "drbd" genl family at version 1 for existing userspace Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 18/20] drbd: add the "drbd2" genl family Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 19/20] drbd: update monitoring interfaces for multi-peer topology Christoph Böhmwalder
2026-11-10 16:26 ` [PATCH v3 20/20] drbd: remove BROKEN for DRBD Christoph Böhmwalder
2026-11-11  0:34   ` kernel test robot
2026-11-11  6:34   ` kernel test robot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202611111410.3QaA5yy6-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=axboe@kernel.dk \
    --cc=christoph.boehmwalder@linbit.com \
    --cc=drbd-dev@lists.linux.dev \
    --cc=lars.ellenberg@linbit.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=philipp.reisner@linbit.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.