aboutsummaryrefslogtreecommitdiff
path: root/include/linux/bsg.h
AgeCommit message (Collapse)AuthorFilesLines
2008-04-22[SCSI] bsg: add release callback supportFUJITA Tomonori1-4/+10
This patch adds release callback support, which is called when a bsg device goes away. bsg_register_queue() takes a pointer to a callback function. This feature is useful for stuff like sas_host that can't use the release callback in struct device. If a caller doesn't need bsg's release callback, it can call bsg_register_queue() with NULL pointer (e.g. scsi devices can use release callback in struct device so they don't need bsg's callback). With this patch, bsg uses kref for refcounts on bsg devices instead of get/put_device in fops->open/release. bsg calls put_device and the caller's release callback (if it was registered) in kref_put's release. Signed-off-by: FUJITA Tomonori <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2008-04-19SCSI: convert struct class_device to struct deviceTony Jones1-1/+1
It's big, but there doesn't seem to be a way to split it up smaller... Signed-off-by: Tony Jones <[email protected]> Signed-off-by: Kay Sievers <[email protected]> Cc: Roland Dreier <[email protected]> Cc: Sean Hefty <[email protected]> Cc: Hal Rosenstock <[email protected]> Cc: James Bottomley <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2007-07-31[SCSI] bsg: update sg_io_v4 structureFUJITA Tomonori1-4/+9
This updates sg_io_v4 structure (based on Doug's RFC, release 1.3). The major changes are: - add dout_resid field - increase tag size to 64 bits to comply with SAM-4 and SRP - add dout_iovec_count and din_iovec_count dout_iovec_count and din_iovec_count aren't supported now. I'm not sure whether they will be supported or not but they were added for the possible future changes. Signed-off-by: FUJITA Tomonori <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2007-07-24[SCSI] bsg: fix unused variable warnings for BLK_DEV_BSG=nJames Bottomley1-2/+7
Just using #defines for the bsg_register_queue()/bsg_unregister_queue() can cause undefined variables when they're defined to nothing. Use dummy inline functions instead. Signed-off-by: James Bottomley <[email protected]>
2007-07-23[SCSI] bsg: use lib/idr.c to find a unique minor numberFUJITA Tomonori1-1/+0
This replaces the current linear search for a unique minor number with lib/idr.c. Signed-off-by: FUJITA Tomonori <[email protected]> Acked-by: Jens Axboe <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2007-07-21[SCSI] bsg: make class backlinksJames Bottomley1-2/+2
Currently, bsg doesn't make class backlinks (a process whereby you'd get a link to bsg in the device directory in the same way you get one for sg). This is because the bsg device is uninitialised, so the class device has nothing it can attach to. The fix is to make the bsg device point to the cdevice of the entity creating the bsg, necessitating changing the bsg_register_queue() prototype into a form that takes the generic device. Acked-by: FUJITA Tomonori <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2007-07-17Don't define empty struct bsg_class_device if !CONFIG_BLK_DEV_BSGGeert Uytterhoeven1-1/+0
Don't define an empty struct bsg_class_device if !CONFIG_BLK_DEV_BSG. It's embedded in struct request_queue, but there we have #if defined(CONFIG_BLK_DEV_BSG) struct bsg_class_device bsg_dev; #endif anyway. Signed-off-by: Geert Uytterhoeven <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2007-07-16bsg: add SCSI transport-level request supportFUJITA Tomonori1-0/+6
This enables bsg to handle SCSI transport-level request like SAS management protocol (SMP). - add BSG_SUB_PROTOCOL_{SCSI_CMD, SCSI_TMF, SCSI_TRANSPORT} definitions. - SCSI transport-level requests skip blk_verify_command(). Signed-off-by: FUJITA Tomonori <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2007-07-16bsg: minor bug fixesFUJITA Tomonori1-1/+1
This fixes the following minor issues: - add EXPORT_SYMBOL_GPL for bsg_register_queue and bsg_unregister_queue. - shut up gcc warnings Signed-off-by: FUJITA Tomonori <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2007-07-16bsg: bind bsg to request_queue instead of gendiskFUJITA Tomonori1-5/+5
This patch binds bsg devices to request_queue instead of gendisk. Any objects (like transport entities) can define own request_handler and create own bsg device. Signed-off-by: FUJITA Tomonori <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2007-07-16Replace s32, u32 and u64 with __s32, __u32 and __u64 in bsg.h for userspaceFUJITA Tomonori1-29/+29
Signed-off-by: FUJITA Tomonori <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2007-07-16bsg: use u32 etc instead of uint32_tJens Axboe1-29/+29
Signed-off-by: Jens Axboe <[email protected]>
2007-07-16bsg: add sg_io_v4 structureFUJITA Tomonori1-0/+43
This patch adds sg_io_v4 structure that Doug proposed last month. There's one major change from the RFC. I dropped iovec, which needs compat stuff. The bsg code simply calls blk_rq_map_user against dout_xferp/din_xferp. So if possible, the page frames are directly mapped. If not possible, the block layer allocates new page frames and does memory copies. Signed-off-by: FUJITA Tomonori <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
2007-07-16bsg: support for full generic block layer SG v3Jens Axboe1-0/+21
Signed-off-by: Jens Axboe <[email protected]>