bsg: fix SG_IO error path
Subsystems (3)
PATCH 1/1 bsg: fix SG_IO error path
bsg SG_IO needs to return -EFAULT for the response field in struct sg_io_v4.
Signed-off-by FUJITA Tomonori <[email protected]>
--- block/bsg.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
block/bsg.c +3 -2
@@ -877,6 +877,7 @@ static long bsg_ioctl(struct file *file, unsigned int cmd, unsigned long arg)struct request *rq;struct bio *bio, *bidi_bio =NULL ;struct sg_io_v4 hdr; +int ret;if (copy_from_user (&hdr, uarg,sizeof (hdr)))return -EFAULT ;
@@ -889,12 +890,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
Signature · 1 line
1.5.3.4