Message ID | 20190610191420.27007-12-kent.overstreet@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/12] Compiler Attributes: add __flatten | expand |
On 2019/6/11 3:14 上午, Kent Overstreet wrote: > Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Acked-by: Coly Li <colyli@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 */ >
On Mon, Jun 10, 2019 at 03:14:19PM -0400, Kent Overstreet wrote: > Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> > --- > include/linux/closure.h | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) Again, no changelog? You are a daring developer... :) greg k-h
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 */
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> --- include/linux/closure.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+)