On Thu, Jan 2, 2020 at 11:37 PM Bart Van Assche <bvanassche@xxxxxxx> wrote: > > On 12/30/19 2:29 AM, Jack Wang wrote: > > +struct rnbd_iu { > > + union { > > + struct request *rq; /* for block io */ > > + void *buf; /* for user messages */ > > + }; > > + struct rtrs_permit *permit; > > + union { > > + /* use to send msg associated with a dev */ > > + struct rnbd_clt_dev *dev; > > + /* use to send msg associated with a sess */ > > + struct rnbd_clt_session *sess; > > + }; > > + blk_status_t status; > > + struct scatterlist sglist[BMAX_SEGMENTS]; > > + struct work_struct work; > > + int errno; > > + struct rnbd_iu_comp comp; > > + atomic_t refcount; > > +}; > > This data structure includes both a blk_status_t and an errno value. Can > these two members be combined into a single member? I guess you were suggesting to remove status and use errno_to_blk_status(iu->errno) to call into blk_mq_end_request. will do. > > Thanks, > > Bart. Thanks.