On 2019/6/11 3:14 上午, Kent Overstreet wrote:
> Signed-off-by: Kent Overstreet <kent.overstr...@gmail.com>

Acked-by: Coly Li <col...@suse.de>

Thanks.

Coly Li

> ---
>  include/linux/closure.h | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/include/linux/closure.h b/include/linux/closure.h
> index 308e38028c..abacb91c35 100644
> --- a/include/linux/closure.h
> +++ b/include/linux/closure.h
> @@ -379,4 +379,26 @@ static inline void closure_call(struct closure *cl, 
> closure_fn fn,
>       continue_at_nobarrier(cl, fn, wq);
>  }
>  
> +#define __closure_wait_event(waitlist, _cond)                                
> \
> +do {                                                                 \
> +     struct closure cl;                                              \
> +                                                                     \
> +     closure_init_stack(&cl);                                        \
> +                                                                     \
> +     while (1) {                                                     \
> +             closure_wait(waitlist, &cl);                            \
> +             if (_cond)                                              \
> +                     break;                                          \
> +             closure_sync(&cl);                                      \
> +     }                                                               \
> +     closure_wake_up(waitlist);                                      \
> +     closure_sync(&cl);                                              \
> +} while (0)
> +
> +#define closure_wait_event(waitlist, _cond)                          \
> +do {                                                                 \
> +     if (!(_cond))                                                   \
> +             __closure_wait_event(waitlist, _cond);                  \
> +} while (0)
> +
>  #endif /* _LINUX_CLOSURE_H */
> 


-- 

Coly Li

Reply via email to