Skip to contentSkip to conversation

unexport sg v3 helper functions

PATCH In review FUJITA Tomonori 3 participants 6 messages Jul 22, 2007 – Jul 24, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 unexport sg v3 helper functions

blk_fill_sghdr_rq, blk_unmap_sghdr_rq, and blk_complete_sghdr_rq were exported for bsg, however bsg was changed to support only sg v4.

---
 block/scsi_ioctl.c     |   13 +++++--------
 include/linux/blkdev.h |    5 -----
 2 files changed, 5 insertions(+), 13 deletions(-)
block/scsi_ioctl.c +5 -8
index 71bdf88..d359a71 100644
@@ -214,8 +214,8 @@ int blk_verify_command(unsigned char *cm
 }
 EXPORT_SYMBOL_GPL(blk_verify_command);
 
-int blk_fill_sghdr_rq(request_queue_t *q, struct request *rq,
-		      struct sg_io_hdr *hdr, int has_write_perm)
+static int blk_fill_sghdr_rq(request_queue_t *q, struct request *rq,
+			     struct sg_io_hdr *hdr, int has_write_perm)
 {
 	memset(rq->cmd, 0, BLK_MAX_CDB); /* ATAPI hates garbage after CDB */
 
@@ -238,22 +238,20 @@ int blk_fill_sghdr_rq(request_queue_t *q
 
 	return 0;
 }
-EXPORT_SYMBOL_GPL(blk_fill_sghdr_rq);
 
 /*
  * unmap a request that was previously mapped to this sg_io_hdr. handles
  * both sg and non-sg sg_io_hdr.
  */
-int blk_unmap_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr)
+static int blk_unmap_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr)
 {
 	blk_rq_unmap_user(rq->bio);
 	blk_put_request(rq);
 	return 0;
 }
-EXPORT_SYMBOL_GPL(blk_unmap_sghdr_rq);
 
-int blk_complete_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr,
-			  struct bio *bio)
+static int blk_complete_sghdr_rq(struct request *rq, struct sg_io_hdr *hdr,
+				 struct bio *bio)
 {
 	int r, ret = 0;
 
@@ -287,7 +285,6 @@ int blk_complete_sghdr_rq(struct request
 
 	return r;
 }
-EXPORT_SYMBOL_GPL(blk_complete_sghdr_rq);
 
 static int sg_io(struct file *file, request_queue_t *q,
 		struct gendisk *bd_disk, struct sg_io_hdr *hdr)
include/linux/blkdev.h +0 -5
index f78965f..695e349 100644
@@ -698,11 +698,6 @@ extern int blk_execute_rq(request_queue_
 			  struct request *, int);
 extern void blk_execute_rq_nowait(request_queue_t *, struct gendisk *,
 				  struct request *, int, rq_end_io_fn *);
-extern int blk_fill_sghdr_rq(request_queue_t *, struct request *,
-		      struct sg_io_hdr *, int);
-extern int blk_unmap_sghdr_rq(struct request *, struct sg_io_hdr *);
-extern int blk_complete_sghdr_rq(struct request *, struct sg_io_hdr *,
-			  struct bio *);
 extern int blk_verify_command(unsigned char *, int);
 
 static inline request_queue_t *bdev_get_queue(struct block_device *bdev)
Signature · 1 line
1.4.3.2
#3 lore raw
Quoted 10 lines · Douglas Gilbert
Quoted 7 lines · Jens Axboe
Quoted 4 lines · FUJITA Tomonori

blk_fill_sghdr_rq, blk_unmap_sghdr_rq, and blk_complete_sghdr_rq were exported for bsg, however bsg was changed to support only sg v4.

Why?

The reasoning is right there, a few lines up - bsg doesn't support sg v3 commands.

Signature · 1 line
Jens Axboe
#4 lore raw
Quoted 6 lines · Jens Axboe
Quoted 5 lines · Douglas Gilbert
Quoted 4 lines · Jens Axboe
Quoted 3 lines · FUJITA Tomonori

blk_fill_sghdr_rq, blk_unmap_sghdr_rq, and blk_complete_sghdr_rq were exported for bsg, however bsg was changed to support only sg v4.

Quoted 6 lines
Quoted 3 lines
Quoted 2 lines
Quoted 1 line

Why?

The reasoning is right there, a few lines up - bsg doesn't support sg v3 commands.

I can read.

Why doesn't bsg support sg v3 commands?

#5 lore raw
Quoted 7 lines · Douglas Gilbert
Quoted 6 lines · Jens Axboe
Quoted 5 lines · Douglas Gilbert
Quoted 4 lines · Jens Axboe
Quoted 3 lines · FUJITA Tomonori

blk_fill_sghdr_rq, blk_unmap_sghdr_rq, and blk_complete_sghdr_rq were exported for bsg, however bsg was changed to support only sg v4.

Quoted 8 lines
Quoted 6 lines
Quoted 3 lines
Quoted 2 lines
Quoted 1 line

Why?

The reasoning is right there, a few lines up - bsg doesn't support sg v3 commands.

I can read.

Then write better questions "Why?" isn't very useful.

Quoted 1 line

Why doesn't bsg support sg v3 commands?

You should know, the discussion on that happened at the storage summit and on linux-scsi. It was decided to drop sg v3 support from bsg, and only focus on making bsg the driver for sg v4 commands.

As you know, we already have dual paths for sg v3. For sg v4 we can get rid of that pain, and just have a single driver for handling that.

Signature · 1 line
Jens Axboe