From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wen Congyang Subject: [RFC Patch v2 11/17] blktap2: don't return negative event id Date: Fri, 8 Aug 2014 16:10:52 +0800 Message-ID: <1407485458-23213-18-git-send-email-wency@cn.fujitsu.com> References: <1407485458-23213-1-git-send-email-wency@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1407485458-23213-1-git-send-email-wency@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen devel Cc: Ian Campbell , Wen Congyang , Ian Jackson , Jiang Yunhong , Dong Eddie , Shriram Rajagopalan , Yang Hongyang , Lai Jiangshan List-Id: xen-devel@lists.xenproject.org If we find some error when registering a new event, we will return a negative value. So we should skip negative event id. Also fix a wrong check of return value. Signed-off-by: Wen Congyang Cc: Shriram Rajagopalan --- tools/blktap2/drivers/scheduler.c | 8 ++++---- tools/blktap2/drivers/tapdisk-control.c | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/blktap2/drivers/scheduler.c b/tools/blktap2/drivers/scheduler.c index dd608dd..e07528b 100644 --- a/tools/blktap2/drivers/scheduler.c +++ b/tools/blktap2/drivers/scheduler.c @@ -167,15 +167,15 @@ get_free_id(scheduler_t *s) int old_uuid = s->uuid; int id = s->uuid++; - if (!s->uuid) - s->uuid++; + if (s->uuid < 0) + s->uuid = 1; retry: scheduler_for_each_event(s, event, tmp) if (event->id == id) { id = s->uuid++; - if (!s->uuid) - s->uuid++; + if (s->uuid < 0) + s->uuid = 1; if (id == old_uuid) return 0; diff --git a/tools/blktap2/drivers/tapdisk-control.c b/tools/blktap2/drivers/tapdisk-control.c index 3a4ec8e..4e5f748 100644 --- a/tools/blktap2/drivers/tapdisk-control.c +++ b/tools/blktap2/drivers/tapdisk-control.c @@ -700,7 +700,7 @@ tapdisk_control_accept(event_id_t id, char mode, void *private) connection->socket, 0, tapdisk_control_handle_request, connection); - if (err == -1) { + if (err < 0) { close(fd); free(connection); EPRINTF("failed to register new control event: %d\n", err); -- 1.9.3