cdev: fix copying pollhandles correctly

The pollhandle is solely implemented in libfuse and does not correspond to
some kernel-intern object. Instead, the kernel notifies us when it has
poll-waiters via a flag. If that flag is set we should notify the kernel
whenever the poll-flags change.

Therefore, we can safely copy the pollhandle all the time and delete our
temporary handles.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This commit is contained in:
David Herrmann 2012-12-02 11:02:17 +01:00
parent 8e23d947f1
commit d0e625f074

View File

@ -678,10 +678,9 @@ static void ll_poll(fuse_req_t req, struct fuse_file_info *fi,
return;
}
if (client->ph) {
if (client->ph)
fuse_pollhandle_destroy(client->ph);
client->ph = ph;
}
client->ph = ph;
flags = EPOLLOUT | EPOLLWRNORM;
if (!shl_ring_is_empty(client->ring))