libusbhost: Fix issue of multiple inotify event at same time.
libusbhost can handle multiple inotify events at same time on Kit kat. In original implementation, the function-level ret is assigned with length of read and used for while loop. if want to add a new watch for subdirectory,inotify_add_watch will update the function-level ret with watch descriptor. It impact on while loop to do exit. Add local result to avoid it. Change-Id: I101041ccfd54eaac14969a45e90ab2e49bdff578 Signed-off-by: Bo Huang <bo.b.huang@intel.com>
This commit is contained in:
parent
0607e104c2
commit
3c1d7b34c1
1 changed files with 4 additions and 3 deletions
|
@ -263,11 +263,12 @@ int usb_host_read_event(struct usb_host_context *context)
|
|||
D("%s subdirectory %s: index: %d\n", (event->mask & IN_CREATE) ?
|
||||
"new" : "gone", path, i);
|
||||
if (i > 0 && i < MAX_USBFS_WD_COUNT) {
|
||||
int local_ret = 0;
|
||||
if (event->mask & IN_CREATE) {
|
||||
ret = inotify_add_watch(context->fd, path,
|
||||
local_ret = inotify_add_watch(context->fd, path,
|
||||
IN_CREATE | IN_DELETE);
|
||||
if (ret >= 0)
|
||||
context->wds[i] = ret;
|
||||
if (local_ret >= 0)
|
||||
context->wds[i] = local_ret;
|
||||
done = find_existing_devices_bus(path, context->cb_added,
|
||||
context->data);
|
||||
} else if (event->mask & IN_DELETE) {
|
||||
|
|
Loading…
Reference in a new issue