Signed-off-by: Christoph Hellwig <hch@xxxxxx> Index: linux-2.6/drivers/s390/block/dasd_eer.c =================================================================== --- linux-2.6.orig/drivers/s390/block/dasd_eer.c 2007-05-13 16:56:38.000000000 +0200 +++ linux-2.6/drivers/s390/block/dasd_eer.c 2007-05-13 16:57:52.000000000 +0200 @@ -14,6 +14,7 @@ #include <linux/moduleparam.h> #include <linux/device.h> #include <linux/poll.h> +#include <linux/mutex.h> #include <asm/uaccess.h> #include <asm/semaphore.h> @@ -514,7 +515,7 @@ void dasd_eer_disable(struct dasd_device * to transfer in a readbuffer, which is protected by the readbuffer_mutex. */ static char readbuffer[PAGE_SIZE]; -static DECLARE_MUTEX(readbuffer_mutex); +static DEFINE_MUTEX(readbuffer_mutex); static int dasd_eer_open(struct inode *inp, struct file *filp) { @@ -579,7 +580,7 @@ static ssize_t dasd_eer_read(struct file struct eerbuffer *eerb; eerb = (struct eerbuffer *) filp->private_data; - if (down_interruptible(&readbuffer_mutex)) + if (mutex_lock_interruptible(&readbuffer_mutex)) return -ERESTARTSYS; spin_lock_irqsave(&bufferlock, flags); @@ -588,7 +589,7 @@ static ssize_t dasd_eer_read(struct file /* has been deleted */ eerb->residual = 0; spin_unlock_irqrestore(&bufferlock, flags); - up(&readbuffer_mutex); + mutex_unlock(&readbuffer_mutex); return -EIO; } else if (eerb->residual > 0) { /* OK we still have a second half of a record to deliver */ @@ -602,7 +603,7 @@ static ssize_t dasd_eer_read(struct file if (!tc) { /* no data available */ spin_unlock_irqrestore(&bufferlock, flags); - up(&readbuffer_mutex); + mutex_unlock(&readbuffer_mutex); if (filp->f_flags & O_NONBLOCK) return -EAGAIN; rc = wait_event_interruptible( @@ -610,7 +611,7 @@ static ssize_t dasd_eer_read(struct file eerb->head != eerb->tail); if (rc) return rc; - if (down_interruptible(&readbuffer_mutex)) + if (mutex_lock_interruptible(&readbuffer_mutex)) return -ERESTARTSYS; spin_lock_irqsave(&bufferlock, flags); } @@ -626,11 +627,11 @@ static ssize_t dasd_eer_read(struct file spin_unlock_irqrestore(&bufferlock, flags); if (copy_to_user(buf, readbuffer, effective_count)) { - up(&readbuffer_mutex); + mutex_unlock(&readbuffer_mutex); return -EFAULT; } - up(&readbuffer_mutex); + mutex_unlock(&readbuffer_mutex); return effective_count; } - To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html