Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=337ad41deae1b56e56731246322a93251df86e79
Commit:     337ad41deae1b56e56731246322a93251df86e79
Parent:     9e69fbb5373f7c081acdf2b75d7bac7e95023dd1
Author:     FUJITA Tomonori <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 20 11:18:54 2006 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Mon Jul 16 08:52:44 2007 +0200

    block: export blk_verify_command for SG v4
    
    blk_fill_sghdr_rq doesn't work for SG v4 so verify_command needed to
    be exported.
    
    Signed-off-by: FUJITA Tomonori <[EMAIL PROTECTED]>
    Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 block/scsi_ioctl.c     |    7 ++++---
 include/linux/blkdev.h |    1 +
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
index daded70..db53b2c 100644
--- a/block/scsi_ioctl.c
+++ b/block/scsi_ioctl.c
@@ -112,7 +112,7 @@ static int sg_emulated_host(request_queue_t *q, int __user 
*p)
 #define safe_for_read(cmd)     [cmd] = CMD_READ_SAFE
 #define safe_for_write(cmd)    [cmd] = CMD_WRITE_SAFE
 
-static int verify_command(unsigned char *cmd, int has_write_perm)
+int blk_verify_command(unsigned char *cmd, int has_write_perm)
 {
        static unsigned char cmd_type[256] = {
 
@@ -212,6 +212,7 @@ static int verify_command(unsigned char *cmd, int 
has_write_perm)
        /* Otherwise fail it with an "Operation not permitted" */
        return -EPERM;
 }
+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)
@@ -220,7 +221,7 @@ int blk_fill_sghdr_rq(request_queue_t *q, struct request 
*rq,
 
        if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len))
                return -EFAULT;
-       if (verify_command(rq->cmd, has_write_perm))
+       if (blk_verify_command(rq->cmd, has_write_perm))
                return -EPERM;
 
        /*
@@ -457,7 +458,7 @@ int sg_scsi_ioctl(struct file *file, struct request_queue 
*q,
        if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len))
                goto error;
 
-       err = verify_command(rq->cmd, file->f_mode & FMODE_WRITE);
+       err = blk_verify_command(rq->cmd, file->f_mode & FMODE_WRITE);
        if (err)
                goto error;
 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 53002d4..f6bc0d0 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -692,6 +692,7 @@ extern int blk_fill_sghdr_rq(request_queue_t *, struct 
request *,
 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)
 {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to