Skip to contentSkip to conversation

9/34: block/swim_iop: replace interruptible_sleep_on() with wait_event_interruptible()

PATCH In review [email protected] 1 participant 1 message Mar 5, 2005 Block layer

lore
Share & tools
lore
#0 lore raw

PATCH 12/15 9/34: block/swim_iop: replace interruptible_sleep_on() with wait_event_interruptible()

Use wait_event_interruptible() instead of the deprecated interruptible_sleep_on(). The change is pretty straight-forward, as the current sleep is conditional.

---

 kj-domen/drivers/block/swim_iop.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)
drivers/block/swim_iop.c renamed from drivers/block/swim_iop.c~wait_event_int-drivers_block_swim_iop +6 -7
diff -puN drivers/block/swim_iop.c~wait_event_int-drivers_block_swim_iop drivers/block/swim_iop.c
@@ -32,6 +32,7 @@
 #include <linux/fd.h>
 #include <linux/ioctl.h>
 #include <linux/blkdev.h>
+#include <linux/wait.h>
 #include <asm/io.h>
 #include <asm/uaccess.h>
 #include <asm/mac_iop.h>
@@ -431,13 +432,11 @@ static int grab_drive(struct floppy_stat
 	local_irq_save(flags);
 	if (fs->state != idle) {
 		++fs->wanted;
-		while (fs->state != available) {
-			if (interruptible && signal_pending(current)) {
-				--fs->wanted;
-				local_irq_restore(flags);
-				return -EINTR;
-			}
-			interruptible_sleep_on(&fs->wait);
+		wait_event_interruptible(fs->wait, (fs->state == available));
+		if (interruptible && signal_pending(current)) {
+			--fs->wanted;
+			local_irq_restore(flags);
+			return -EINTR;
 		}
 		--fs->wanted;
 	}

_