list_del_init(&wait->entry);
if (poll && poll->head) {
+ struct io_poll_iocb *dpoll = io_poll_get_double(req);
bool done;
+ if (dpoll->head == poll->head)
+ printk(KERN_ERR "poll and dpoll head identical\n");
+ else
+ printk(KERN_ERR "poll and dpoll head different\n");
+
spin_lock(&poll->head->lock);
done = list_empty(&poll->wait.entry);
if (!done)
return;
}
/* double add on the same waitqueue head, ignore */
- if (poll->head == head)
+ if (poll->head == head) {
+ printk(KERN_ERR "Ignore double poll same head\n");
return;
+ } else {
+ printk(KERN_ERR "Double poll %lx %lx\n", (long) poll->head, (long) head);
+ }
poll = kmalloc(sizeof(*poll), GFP_ATOMIC);
if (!poll) {
pt->error = -ENOMEM;