[PATCH 1/2] staging: lustre: lloop_device: Replace semaphore lo_sem with completion

James Simmons jsimmons at infradead.org
Wed Jun 8 17:49:04 UTC 2016


> The semaphore 'lo_sem' in lloop_device is used as completion, so it
> should be written as one. Semaphores are going away in the future.
> 
> Signed-off-by: Binoy Jayan <binoy.jayan at linaro.org>

NAK. The lloop_device is about to get deleted.

> ---
>  drivers/staging/lustre/lustre/llite/lloop.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/staging/lustre/lustre/llite/lloop.c b/drivers/staging/lustre/lustre/llite/lloop.c
> index 813a9a3..90b31ba 100644
> --- a/drivers/staging/lustre/lustre/llite/lloop.c
> +++ b/drivers/staging/lustre/lustre/llite/lloop.c
> @@ -131,7 +131,7 @@ struct lloop_device {
>  	struct bio		*lo_bio;
>  	struct bio		*lo_biotail;
>  	int			lo_state;
> -	struct semaphore	lo_sem;
> +	struct completion	lo_comp;
>  	struct mutex		lo_ctl_mutex;
>  	atomic_t	 lo_pending;
>  	wait_queue_head_t	  lo_bh_wait;
> @@ -423,9 +423,9 @@ static int loop_thread(void *data)
>  	lo->lo_pvec.ldp_offsets = lo->lo_requests[0].lrd_offsets;
>  
>  	/*
> -	 * up sem, we are running
> +	 * signal completion, we are running
>  	 */
> -	up(&lo->lo_sem);
> +	complete(&lo->lo_comp);
>  
>  	for (;;) {
>  		wait_event(lo->lo_bh_wait, loop_active(lo));
> @@ -466,7 +466,7 @@ static int loop_thread(void *data)
>  	cl_env_put(env, &refcheck);
>  
>  out:
> -	up(&lo->lo_sem);
> +	complete(&lo->lo_comp);
>  	return ret;
>  }
>  
> @@ -539,7 +539,7 @@ static int loop_set_fd(struct lloop_device *lo, struct file *unused,
>  	set_blocksize(bdev, lo->lo_blocksize);
>  
>  	kthread_run(loop_thread, lo, "lloop%d", lo->lo_number);
> -	down(&lo->lo_sem);
> +	wait_for_completion(&lo->lo_comp);
>  	return 0;
>  
>  out:
> @@ -568,7 +568,7 @@ static int loop_clr_fd(struct lloop_device *lo, struct block_device *bdev,
>  	spin_unlock_irq(&lo->lo_lock);
>  	wake_up(&lo->lo_bh_wait);
>  
> -	down(&lo->lo_sem);
> +	wait_for_completion(&lo->lo_comp);
>  	lo->lo_backing_file = NULL;
>  	lo->lo_device = NULL;
>  	lo->lo_offset = 0;
> @@ -821,7 +821,7 @@ static int __init lloop_init(void)
>  			goto out_mem4;
>  
>  		mutex_init(&lo->lo_ctl_mutex);
> -		sema_init(&lo->lo_sem, 0);
> +		init_completion(&lo->lo_comp);
>  		init_waitqueue_head(&lo->lo_bh_wait);
>  		lo->lo_number = i;
>  		spin_lock_init(&lo->lo_lock);
> -- 
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
> 
> _______________________________________________
> devel mailing list
> devel at linuxdriverproject.org
> http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
> 


More information about the devel mailing list