diff options
author | Maxim Levitsky <maximlevitsky@gmail.com> | 2010-02-27 02:31:51 +0200 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2010-03-08 18:57:42 -0800 |
commit | e4d64cab99a2d659bf9d6fe9ab67666bceb68d87 (patch) | |
tree | 2a43c4ccfdb2fc35d4df304d139943ca73504029 /drivers/mtd/mtd_blkdevs.c | |
parent | 7de6f798e13093536b6cb229213db2fab6e6555f (diff) | |
download | op-kernel-dev-e4d64cab99a2d659bf9d6fe9ab67666bceb68d87.zip op-kernel-dev-e4d64cab99a2d659bf9d6fe9ab67666bceb68d87.tar.gz |
mtd: blktrans: do blk_cleanup_queue when it is really safe to do so
I was calling it in del_mtd_blktrans_dev, but ->request_fn could
still be running at that point, thus defer this call
to blktrans_dev_release
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd/mtd_blkdevs.c')
-rw-r--r-- | drivers/mtd/mtd_blkdevs.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c index e32c49c..03e19c1 100644 --- a/drivers/mtd/mtd_blkdevs.c +++ b/drivers/mtd/mtd_blkdevs.c @@ -32,6 +32,7 @@ void blktrans_dev_release(struct kref *kref) container_of(kref, struct mtd_blktrans_dev, ref); dev->disk->private_data = NULL; + blk_cleanup_queue(dev->rq); put_disk(dev->disk); list_del(&dev->list); kfree(dev); @@ -423,7 +424,6 @@ int del_mtd_blktrans_dev(struct mtd_blktrans_dev *old) old->rq->queuedata = NULL; blk_start_queue(old->rq); spin_unlock_irqrestore(&old->queue_lock, flags); - blk_cleanup_queue(old->rq); /* Ask trans driver for release to the mtd device */ mutex_lock(&old->lock); |