#include <linux/bio.h>
#include <linux/blkdev.h>
#include <linux/spinlock.h>
+#include <linux/mutex.h>
/* Possible states of device */
enum {
struct bio *lo_bio;
struct bio *lo_biotail;
int lo_state;
- struct semaphore lo_sem;
- struct semaphore lo_ctl_mutex;
- struct semaphore lo_bh_mutex;
+ struct task_struct *lo_thread;
+ struct completion lo_bh_done;
+ struct mutex lo_ctl_mutex;
int lo_pending;
request_queue_t *lo_queue;