X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=fs%2Feventfd.c;h=e265b6dd4f345f55cea7775bdb08b938023711b7;hb=2760f5a14fe7aa466e38bbb92d0284fffc0e4da0;hp=df466ef81dddfa05c6e6b3f90eaf0a8a352b53a7;hpb=1e21b5c73912a516bb13aec0ff69205b0b33568f;p=linux-2.6-microblaze.git diff --git a/fs/eventfd.c b/fs/eventfd.c index df466ef81ddd..e265b6dd4f34 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -182,11 +182,14 @@ static __poll_t eventfd_poll(struct file *file, poll_table *wait) return events; } -static void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt) +void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt) { + lockdep_assert_held(&ctx->wqh.lock); + *cnt = (ctx->flags & EFD_SEMAPHORE) ? 1 : ctx->count; ctx->count -= *cnt; } +EXPORT_SYMBOL_GPL(eventfd_ctx_do_read); /** * eventfd_ctx_remove_wait_queue - Read the current counter and removes wait queue.