mtd: blktrans: Hotplug fixes
* Add locking where it was missing. * Don't do a get_mtd_device in blktrans_open because it would lead to a deadlock; instead do that in add_mtd_blktrans_dev. * Only free the mtd_blktrans_dev structure when the last user exits. * Flush request queue on device removal. * Track users, and call tr->release in del_mtd_blktrans_dev Due to that ->open and release aren't called more that once. Now it is safe to call del_mtd_blktrans_dev while the device is still in use. Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This commit is contained in:
committed by
David Woodhouse
parent
a863862257
commit
048d871995
@ -9,6 +9,7 @@
|
||||
#define __MTD_TRANS_H__
|
||||
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/kref.h>
|
||||
|
||||
struct hd_geometry;
|
||||
struct mtd_info;
|
||||
@ -24,6 +25,8 @@ struct mtd_blktrans_dev {
|
||||
int devnum;
|
||||
unsigned long size;
|
||||
int readonly;
|
||||
int open;
|
||||
struct kref ref;
|
||||
struct gendisk *disk;
|
||||
struct task_struct *thread;
|
||||
struct request_queue *rq;
|
||||
|
Reference in New Issue
Block a user