mtd/drivers/mtd mtd_blkdevs.c,1.18,1.19
David Woodhouse
dwmw2 at infradead.org
Fri Nov 7 04:52:48 EST 2003
Update of /home/cvs/mtd/drivers/mtd
In directory phoenix.infradead.org:/tmp/cvs-serv2342
Modified Files:
mtd_blkdevs.c
Log Message:
Updates for 2.6 kernel; from Miernik.
Index: mtd_blkdevs.c
===================================================================
RCS file: /home/cvs/mtd/drivers/mtd/mtd_blkdevs.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- mtd_blkdevs.c 8 Sep 2003 11:37:23 -0000 1.18
+++ mtd_blkdevs.c 7 Nov 2003 09:52:46 -0000 1.19
@@ -33,7 +33,7 @@
struct completion thread_dead;
int exiting;
wait_queue_head_t thread_wq;
- struct request_queue rq;
+ struct request_queue *rq;
spinlock_t queue_lock;
};
@@ -79,7 +79,7 @@
static int mtd_blktrans_thread(void *arg)
{
struct mtd_blktrans_ops *tr = arg;
- struct request_queue *rq = &tr->blkcore_priv->rq;
+ struct request_queue *rq = tr->blkcore_priv->rq;
/* we might get involved when memory gets low, so use PF_MEMALLOC */
current->flags |= PF_MEMALLOC;
@@ -301,7 +301,7 @@
gd->private_data = new;
new->blkcore_priv = gd;
- gd->queue = &tr->blkcore_priv->rq;
+ gd->queue = tr->blkcore_priv->rq;
if (new->readonly)
set_disk_ro(gd, 1);
@@ -392,14 +392,20 @@
init_completion(&tr->blkcore_priv->thread_dead);
init_waitqueue_head(&tr->blkcore_priv->thread_wq);
- blk_init_queue(&tr->blkcore_priv->rq, mtd_blktrans_request,
- &tr->blkcore_priv->queue_lock);
- tr->blkcore_priv->rq.queuedata = tr;
+ tr->blkcore_priv->rq = blk_init_queue(mtd_blktrans_request, &tr->blkcore_priv->queue_lock);
+ if (!tr->blkcore_priv->rq) {
+ unregister_blkdev(tr->major, tr->name);
+ kfree(tr->blkcore_priv);
+ up(&mtd_table_mutex);
+ return -ENOMEM;
+ }
+
+ tr->blkcore_priv->rq->queuedata = tr;
ret = kernel_thread(mtd_blktrans_thread, tr,
CLONE_FS|CLONE_FILES|CLONE_SIGHAND);
if (ret < 0) {
- blk_cleanup_queue(&tr->blkcore_priv->rq);
+ blk_cleanup_queue(tr->blkcore_priv->rq);
unregister_blkdev(tr->major, tr->name);
kfree(tr->blkcore_priv);
up(&mtd_table_mutex);
@@ -441,7 +447,7 @@
}
devfs_remove(tr->name);
- blk_cleanup_queue(&tr->blkcore_priv->rq);
+ blk_cleanup_queue(tr->blkcore_priv->rq);
unregister_blkdev(tr->major, tr->name);
up(&mtd_table_mutex);
More information about the linux-mtd-cvs
mailing list