queuedata

master
Vitaliy Filippov 2013-05-09 16:42:47 +04:00
parent 75cc431d17
commit 73c774101c
1 changed files with 5 additions and 3 deletions

8
sftl.c
View File

@ -75,7 +75,7 @@ static void sftl_transfer(struct sftl_dev *dev, sector_t sector,
if ((offset + nblocks) > dev->size)
{
INFO("Beyond-end write (%ld %ld)\n", offset, nblocks);
INFO("Beyond-end write (starting sector = %ld, count = %ld)\n", offset, nblocks);
return;
}
@ -96,7 +96,8 @@ static void sftl_request(struct request_queue *q)
__blk_end_request_all(req, -EIO);
continue;
}
//sbd_transfer(&Device, blk_rq_pos(req), blk_rq_cur_sectors(req), req->buffer, rq_data_dir(req));
sftl_transfer((struct sftl_dev *)q->queuedata, blk_rq_pos(req),
blk_rq_cur_sectors(req), req->buffer, rq_data_dir(req));
if (!__blk_end_request_cur(req, 0))
{
req = blk_fetch_request(q);
@ -217,6 +218,7 @@ static struct sftl_dev *add_device(char *devname)
dev->queue = blk_init_queue(sftl_request, &dev->spinlock);
if (dev->queue == NULL)
goto devinit_err;
dev->queue->queuedata = dev;
blk_queue_logical_block_size(dev->queue, clust_sz);
/* Allocate index for the new disk */
@ -237,7 +239,7 @@ static struct sftl_dev *add_device(char *devname)
dev->gd->first_minor = index*16;
dev->gd->fops = &sftl_ops;
dev->gd->private_data = dev;
sprintf(dev->gd->disk_name, "sftl%d", index);
snprintf(dev->gd->disk_name, 32, "sftl%d", index);
set_capacity(dev->gd, dev->size);
dev->gd->queue = dev->queue;
add_disk(dev->gd);