4/34: block/acsi_slm: replace interruptible_sleep_on()
Subsystems (2)
PATCH 1/1 4/34: block/acsi_slm: replace interruptible_sleep_on()
Hi,
Please consider applying.
Description: Use wait_event_interruptible() instead of the deprecated interruptible_sleep_on(). The sleep_on() call later in the same function is replaced with inline wait-queue code which achieves the same. This required adding a local wait-queue, though.
Signed-off-by Nishanth Aravamudan <[email protected]>
drivers/block/acsi_slm.c +9 -7
@@ -67,6 +67,7 @@ not be guaranteed. There are several way#include <linux/slab.h> #include <linux/devfs_fs_kernel.h> #include <linux/smp_lock.h> +#include <linux/wait.h> #include <asm/pgtable.h> #include <asm/system.h>
@@ -625,12 +626,10 @@ static ssize_t slm_write( struct file *fint device =iminor (node);int n, filled, w, h; -while ( SLMState ==PRINTING || - (SLMState ==FILLING && SLMBufOwner != device) ) { -interruptible_sleep_on ( &slm_wait ); -if (signal_pending (current)) -return ( -ERESTARTSYS ); - } +wait_event_interruptible (slm_wait, (SLMState !=PRINTING && + (SLMState !=FILLING || SLMBufOwner == device))); +if (signal_pending (current)) +return -ERESTARTSYS ;if (SLMState ==IDLE ) {/* first data of page: get current page size */ if (slm_get_pagesize ( device, &w, &h ))
@@ -654,6 +653,7 @@ static ssize_t slm_write( struct file *f filled += n;if (filled == BufferSize) { +DEFINE_WAIT (wait);/* Check the paper size again! The user may have switched it in the * time between starting the data and finishing them. Would end up in * a trashy page... */
@@ -672,7 +672,9 @@ static ssize_t slm_write( struct file *f#endif start_print ( device ); -sleep_on ( &print_wait ); +prepare_to_wait (&print_wait, &wait,TASK_UNINTERRUPTIBLE ); +schedule (); +finish_wait (&print_wait, &wait);if (SLMError &&IS_REAL_ERROR (SLMError)) {printk (KERN_ERR "slm%d: %s\n" , device,slm_errstr (SLMError) ); n = -EIO ;
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors