> > > +#define _IBNBD_FILEIO 0 > > > +#define _IBNBD_BLOCKIO 1 > > > +#define _IBNBD_AUTOIO 2 > > > > > > +enum ibnbd_io_mode { > > > + IBNBD_FILEIO = _IBNBD_FILEIO, > > > + IBNBD_BLOCKIO = _IBNBD_BLOCKIO, > > > + IBNBD_AUTOIO = _IBNBD_AUTOIO, > > > +}; > > > > Since the IBNBD_* and _IBNBD_* constants have the same numerical value, > > are the former constants really necessary? > Seems we can remove _IBNBD_*. Sorry, checked again, we defined _IBNBD_* constants to show the right value for def_io_mode description. If we remove the _IBNBD_*, then the modinfo shows: def_io_mode:By default, export devices in blockio(IBNBD_BLOCKIO) or fileio(IBNBD_FILEIO) mode. (default: IBNBD_BLOCKIO (blockio)) instead of: parm: def_io_mode:By default, export devices in blockio(1) or fileio(0) mode. (default: 1 (blockio)) > > > +/** > > > + * struct ibnbd_msg_io_old - message for I/O read/write for > > > + * ver < IBNBD_PROTO_VER_MAJOR > > > + * This structure is there only to know the size of the "old" message format > > > + * @hdr: message header > > > + * @device_id: device_id on server side to find the right device > > > + * @sector: bi_sector attribute from struct bio > > > + * @rw: bitmask, valid values are defined in enum ibnbd_io_flags > > > + * @bi_size: number of bytes for I/O read/write > > > + * @prio: priority > > > + */ > > > +struct ibnbd_msg_io_old { > > > + struct ibnbd_msg_hdr hdr; > > > + __le32 device_id; > > > + __le64 sector; > > > + __le32 rw; > > > + __le32 bi_size; > > > +}; > > > > Since this is the first version of IBNBD that is being sent upstream, I > > think that ibnbd_msg_io_old should be left out. After discuss with Danil, we will remove the ibnbd_msg_io_old next round. Regards, -- Jack Wang Linux Kernel Developer Platform Engineering Compute (IONOS Cloud)