- 2.6.17 port work build breaks, but the patch set is relativly stable
[linux-flexiantxendom0-3.2.10.git] / drivers / mtd / devices / block2mtd.c
index 7ff403b..4160b83 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/init.h>
 #include <linux/mtd/mtd.h>
 #include <linux/buffer_head.h>
+#include <linux/mutex.h>
 
 #define VERSION "$Revision: 1.30 $"
 
@@ -31,7 +32,7 @@ struct block2mtd_dev {
        struct list_head list;
        struct block_device *blkdev;
        struct mtd_info mtd;
-       struct semaphore write_mutex;
+       struct mutex write_mutex;
 };
 
 
@@ -134,9 +135,9 @@ static int block2mtd_erase(struct mtd_info *mtd, struct erase_info *instr)
        int err;
 
        instr->state = MTD_ERASING;
-       down(&dev->write_mutex);
+       mutex_lock(&dev->write_mutex);
        err = _block2mtd_erase(dev, from, len);
-       up(&dev->write_mutex);
+       mutex_unlock(&dev->write_mutex);
        if (err) {
                ERROR("erase failed err = %d", err);
                instr->state = MTD_ERASE_FAILED;
@@ -249,9 +250,9 @@ static int block2mtd_write(struct mtd_info *mtd, loff_t to, size_t len,
        if (to + len > mtd->size)
                len = mtd->size - to;
 
-       down(&dev->write_mutex);
+       mutex_lock(&dev->write_mutex);
        err = _block2mtd_write(dev, buf, to, len, retlen);
-       up(&dev->write_mutex);
+       mutex_unlock(&dev->write_mutex);
        if (err > 0)
                err = 0;
        return err;
@@ -310,7 +311,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size)
                goto devinit_err;
        }
 
-       init_MUTEX(&dev->write_mutex);
+       mutex_init(&dev->write_mutex);
 
        /* Setup the MTD structure */
        /* make the name contain the block device in */