git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
s390
/
char
/
tape_block.c
diff --git
a/drivers/s390/char/tape_block.c
b/drivers/s390/char/tape_block.c
index
1efc9f2
..
c8a89b3
100644
(file)
--- a/
drivers/s390/char/tape_block.c
+++ b/
drivers/s390/char/tape_block.c
@@
-11,11
+11,11
@@
*/
#include <linux/fs.h>
*/
#include <linux/fs.h>
-#include <linux/config.h>
#include <linux/module.h>
#include <linux/blkdev.h>
#include <linux/interrupt.h>
#include <linux/buffer_head.h>
#include <linux/module.h>
#include <linux/blkdev.h>
#include <linux/interrupt.h>
#include <linux/buffer_head.h>
+#include <linux/kernel.h>
#include <asm/debug.h>
#include <asm/debug.h>
@@
-65,7
+65,7
@@
static void
tapeblock_trigger_requeue(struct tape_device *device)
{
/* Protect against rescheduling. */
tapeblock_trigger_requeue(struct tape_device *device)
{
/* Protect against rescheduling. */
- if (atomic_c
ompare_and_swap(0, 1, &device->blk_data.requeue_scheduled)
)
+ if (atomic_c
mpxchg(&device->blk_data.requeue_scheduled, 0, 1) != 0
)
return;
schedule_work(&device->blk_data.requeue_task);
}
return;
schedule_work(&device->blk_data.requeue_task);
}
@@
-78,7
+78,7
@@
tapeblock_end_request(struct request *req, int uptodate)
{
if (end_that_request_first(req, uptodate, req->hard_nr_sectors))
BUG();
{
if (end_that_request_first(req, uptodate, req->hard_nr_sectors))
BUG();
- end_that_request_last(req);
+ end_that_request_last(req
, uptodate
);
}
static void
}
static void
@@
-144,7
+144,8
@@
tapeblock_start_request(struct tape_device *device, struct request *req)
* queue.
*/
static void
* queue.
*/
static void
-tapeblock_requeue(void *data) {
+tapeblock_requeue(struct work_struct *work) {
+ struct tape_blk_data * blkdat;
struct tape_device * device;
request_queue_t * queue;
int nr_queued;
struct tape_device * device;
request_queue_t * queue;
int nr_queued;
@@
-152,7
+153,8
@@
tapeblock_requeue(void *data) {
struct list_head * l;
int rc;
struct list_head * l;
int rc;
- device = (struct tape_device *) data;
+ blkdat = container_of(work, struct tape_blk_data, requeue_task);
+ device = blkdat->device;
if (!device)
return;
if (!device)
return;
@@
-198,9
+200,7
@@
tapeblock_request_fn(request_queue_t *queue)
device = (struct tape_device *) queue->queuedata;
DBF_LH(6, "tapeblock_request_fn(device=%p)\n", device);
device = (struct tape_device *) queue->queuedata;
DBF_LH(6, "tapeblock_request_fn(device=%p)\n", device);
- if (device == NULL)
- BUG();
-
+ BUG_ON(device == NULL);
tapeblock_trigger_requeue(device);
}
tapeblock_trigger_requeue(device);
}
@@
-215,6
+215,7
@@
tapeblock_setup_device(struct tape_device * device)
int rc;
blkdat = &device->blk_data;
int rc;
blkdat = &device->blk_data;
+ blkdat->device = device;
spin_lock_init(&blkdat->request_queue_lock);
atomic_set(&blkdat->requeue_scheduled, 0);
spin_lock_init(&blkdat->request_queue_lock);
atomic_set(&blkdat->requeue_scheduled, 0);
@@
-258,8
+259,8
@@
tapeblock_setup_device(struct tape_device * device)
add_disk(disk);
add_disk(disk);
- INIT_WORK(&blkdat->requeue_task, tapeblock_requeue,
-
tape_get_device_reference(device)
);
+ tape_get_device_reference(device);
+
INIT_WORK(&blkdat->requeue_task, tapeblock_requeue
);
return 0;
return 0;
@@
-274,7
+275,7
@@
void
tapeblock_cleanup_device(struct tape_device *device)
{
flush_scheduled_work();
tapeblock_cleanup_device(struct tape_device *device)
{
flush_scheduled_work();
-
device->blk_data.requeue_task.data =
tape_put_device(device);
+ tape_put_device(device);
if (!device->blk_data.disk) {
PRINT_ERR("(%s): No gendisk to clean up!\n",
if (!device->blk_data.disk) {
PRINT_ERR("(%s): No gendisk to clean up!\n",
@@
-307,8
+308,7
@@
tapeblock_revalidate_disk(struct gendisk *disk)
int rc;
device = (struct tape_device *) disk->private_data;
int rc;
device = (struct tape_device *) disk->private_data;
- if (!device)
- BUG();
+ BUG_ON(!device);
if (!device->blk_data.medium_changed)
return 0;
if (!device->blk_data.medium_changed)
return 0;
@@
-435,16
+435,14
@@
tapeblock_ioctl(
) {
int rc;
int minor;
) {
int rc;
int minor;
- struct gendisk *disk
= inode->i_bdev->bd_disk
;
- struct tape_device *device
= disk->private_data
;
+ struct gendisk *disk;
+ struct tape_device *device;
rc = 0;
disk = inode->i_bdev->bd_disk;
rc = 0;
disk = inode->i_bdev->bd_disk;
- if (!disk)
- BUG();
+ BUG_ON(!disk);
device = disk->private_data;
device = disk->private_data;
- if (!device)
- BUG();
+ BUG_ON(!device);
minor = iminor(inode);
DBF_LH(6, "tapeblock_ioctl(0x%0x)\n", command);
minor = iminor(inode);
DBF_LH(6, "tapeblock_ioctl(0x%0x)\n", command);