Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 77089
b: refs/heads/master
c: 2d507a0
h: refs/heads/master
i:
  77087: d9c6ab6
v: v3
  • Loading branch information
James Bottomley authored and James Bottomley committed Jan 12, 2008
1 parent ea10bca commit 31c01f4
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2d4b63e1505b317d4253cee3f2970792ec6d41cb
refs/heads/master: 2d507a01dac338831266b44ccbb01c69e84606ed
14 changes: 12 additions & 2 deletions trunk/block/bsg.c
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,15 @@ static int blk_complete_sgv4_hdr_rq(struct request *rq, struct sg_io_v4 *hdr,
else
hdr->dout_resid = rq->data_len;

/*
* If the request generated a negative error number, return it
* (providing we aren't already returning an error); if it's
* just a protocol response (i.e. non negative), that gets
* processed above.
*/
if (!ret && rq->errors < 0)
ret = rq->errors;

blk_rq_unmap_user(bio);
blk_put_request(rq);

Expand Down Expand Up @@ -837,6 +846,7 @@ static long bsg_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
{
struct bsg_device *bd = file->private_data;
int __user *uarg = (int __user *) arg;
int ret;

switch (cmd) {
/*
Expand Down Expand Up @@ -889,12 +899,12 @@ static long bsg_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
if (rq->next_rq)
bidi_bio = rq->next_rq->bio;
blk_execute_rq(bd->queue, NULL, rq, 0);
blk_complete_sgv4_hdr_rq(rq, &hdr, bio, bidi_bio);
ret = blk_complete_sgv4_hdr_rq(rq, &hdr, bio, bidi_bio);

if (copy_to_user(uarg, &hdr, sizeof(hdr)))
return -EFAULT;

return 0;
return ret;
}
/*
* block device ioctls
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/scsi/scsi_transport_sas.c
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ static void sas_smp_request(struct request_queue *q, struct Scsi_Host *shost,

handler = to_sas_internal(shost->transportt)->f->smp_handler;
ret = handler(shost, rphy, req);
req->errors = ret;

spin_lock_irq(q->queue_lock);

Expand Down

0 comments on commit 31c01f4

Please sign in to comment.