On Wed, Dec 20 2006, FUJITA Tomonori wrote: > This adds SG_IO support to SG v4. > > Signed-off-by: FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> > --- > block/bsg.c | 23 +++++++++++++++++++++-- > 1 files changed, 21 insertions(+), 2 deletions(-) > > diff --git a/block/bsg.c b/block/bsg.c > index 6d139d2..9dc5d36 100644 > --- a/block/bsg.c > +++ b/block/bsg.c > @@ -945,8 +945,27 @@ bsg_ioctl(struct inode *inode, struct fi > void __user *uarg = (void __user *) arg; > return scsi_cmd_ioctl(file, bd->disk, cmd, uarg); > } > - case SG_IO: > - return -EINVAL; > + case SG_IO: { > + struct request *rq; > + struct bio *bio; > + struct sg_io_v4 hdr; > + > + if (copy_from_user(&hdr, uarg, sizeof(hdr))) > + return -EFAULT; > + > + rq = bsg_map_hdr(bd, &hdr); > + if (IS_ERR(rq)) > + return PTR_ERR(rq); > + > + bio = rq->bio; Pointless assignment. In fact the bio can be completely removed. > + blk_execute_rq(bd->queue, bd->disk, rq, 0); > + blk_complete_sgv4_hdr_rq(rq, &hdr, bio); > + > + if (copy_to_user(uarg, &hdr, sizeof(hdr))) > + return -EFAULT; > + else > + return 0; Kill the else. I'll make both changes. Applying your series as-is, and making the changes I noted in the previous mails. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html