From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: bharrosh@panasas.com, James.Smart@Emulex.Com,
linux-scsi@vger.kernel.org, seokmann.ju@qlogic.com,
andrew.vasquez@qlogic.com, sven@linux.vnet.ibm.com
Subject: Re: [RFC] FC pass thru - Rev IV
Date: Thu, 27 Nov 2008 20:01:41 -0600 [thread overview]
Message-ID: <1227837701.3914.6.camel@localhost.localdomain> (raw)
In-Reply-To: <20081127185406L.fujita.tomonori@lab.ntt.co.jp>
On Thu, 2008-11-27 at 18:53 +0900, FUJITA Tomonori wrote:
> > + blk_end_bidi_request(job->req, err, blk_rq_bytes(job->req), bytes_requested);
> >
> > The residual count is left in req->data_len. Does bsg have a way to return the
> > residual to user-mode? It must, since Pete was using that for sure. Note that
> > you are looking for the bidi_read residual count.
>
> Yeah, bsg has. struct sg_io_v4 has:
>
> __s32 din_resid; /* [o] din_xfer_len - actual_din_xfer_len */
> __s32 dout_resid; /* [o] dout_xfer_len - actual_dout_xfer_len */
>
>
> > As was said by people. You must complete ALL bytes on both sides. Residual information
> > is passed through req->data_len. Other wise the request is still active.
> >
> > (And yes blk_end_request uses blk_end_bidi_request internally)
>
> We always complete all bytes on both sides. So why we do something
> like:
>
> int blk_end_request(struct request *rq, int error, unsigned int nr_bytes)
> {
> unsigned int bidi_bytes = 0;
>
> if (blk_bidi_rq(rq))
> bidi_bytes = req->next_rq->data_len;
>
> return blk_end_io(rq, error, nr_bytes, bidi_bytes, NULL);
> }
That looks good ... care to patch it up (including conversion of all the
users) and send it to Jens for consideration?
> The callers can do something like:
>
> blk_end_request(rq, err, rq->data_len);
> rq-->next_rq->data_len = resid;
Um ... I see what you're trying to do, but I don't think it works like
this. The residual could be collected in the end_io call back which is
inline in the blk_end_request().
James
next prev parent reply other threads:[~2008-11-28 2:01 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-18 21:24 [RFC] FC pass thru - Rev IV James Smart
2008-11-24 15:46 ` Sven Schuetz
2008-11-24 16:29 ` James Smart
2008-11-25 15:08 ` Sven Schuetz
2008-11-25 15:56 ` James Smart
2008-11-24 20:37 ` Seokmann Ju
2008-11-24 21:03 ` James Smart
2008-11-25 14:38 ` Seokmann Ju
2008-11-25 15:47 ` James Smart
2008-12-01 21:49 ` Seokmann Ju
2008-12-01 22:09 ` James Smart
2008-11-26 18:25 ` Sven Schuetz
2008-11-26 18:58 ` James Smart
2008-11-27 7:03 ` FUJITA Tomonori
2008-11-27 8:58 ` Boaz Harrosh
2008-11-27 9:53 ` FUJITA Tomonori
2008-11-27 11:51 ` Boaz Harrosh
2008-11-28 1:52 ` FUJITA Tomonori
2008-11-30 10:56 ` Boaz Harrosh
2008-11-28 2:01 ` James Bottomley [this message]
2008-11-28 2:22 ` FUJITA Tomonori
2009-02-11 15:13 ` [RFC] FC pass thru - Rev V James Smart
2009-02-11 15:43 ` Seokmann Ju
2009-02-20 2:33 ` Seokmann Ju
2009-02-20 18:53 ` James Smart
2009-02-21 6:00 ` FUJITA Tomonori
2009-02-24 14:25 ` Seokmann Ju
2009-03-13 16:25 ` Seokmann Ju
2009-03-13 16:47 ` Sven Schuetz
2009-03-13 17:04 ` Seokmann Ju
2009-03-15 9:34 ` Boaz Harrosh
2009-03-15 13:14 ` James Smart
2009-03-15 14:03 ` Boaz Harrosh
2009-03-15 15:15 ` James Smart
2009-03-15 16:15 ` Boaz Harrosh
2009-03-15 14:26 ` Boaz Harrosh
2009-03-19 1:57 ` FUJITA Tomonori
2009-03-14 22:16 ` James Smart
2009-03-16 11:36 ` Seokmann Ju
2009-03-25 12:58 ` Seokmann Ju
2009-03-15 9:30 ` Boaz Harrosh
2009-03-16 11:40 ` Seokmann Ju
2009-03-16 13:38 ` Boaz Harrosh
2009-03-16 15:37 ` Seokmann Ju
2009-02-11 16:15 ` Boaz Harrosh
2009-02-11 16:33 ` FUJITA Tomonori
2009-02-11 16:55 ` Boaz Harrosh
2009-02-11 17:14 ` FUJITA Tomonori
2009-02-11 18:16 ` Boaz Harrosh
2009-03-07 12:17 ` Seokmann Ju
2009-03-07 14:44 ` James Smart
2009-03-07 20:18 ` Seokmann Ju
2009-03-08 15:00 ` James Smart
2009-03-08 15:46 ` Boaz Harrosh
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=1227837701.3914.6.camel@localhost.localdomain \
--to=james.bottomley@hansenpartnership.com \
--cc=James.Smart@Emulex.Com \
--cc=andrew.vasquez@qlogic.com \
--cc=bharrosh@panasas.com \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=linux-scsi@vger.kernel.org \
--cc=seokmann.ju@qlogic.com \
--cc=sven@linux.vnet.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox