From patchwork Wed May 11 10:35:53 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hannes Reinecke X-Patchwork-Id: 9067791 X-Patchwork-Delegate: snitzer@redhat.com Return-Path: X-Original-To: patchwork-dm-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id E7B959F372 for ; Wed, 11 May 2016 10:45:54 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 224EE200F3 for ; Wed, 11 May 2016 10:45:54 +0000 (UTC) Received: from mx5-phx2.redhat.com (mx5-phx2.redhat.com [209.132.183.37]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2D057200EC for ; Wed, 11 May 2016 10:45:53 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by mx5-phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u4BAb3xo005217; Wed, 11 May 2016 06:37:03 -0400 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id u4BAZv8A009052 for ; Wed, 11 May 2016 06:35:57 -0400 Received: from mx1.redhat.com (ext-mx01.extmail.prod.ext.phx2.redhat.com [10.5.110.25]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u4BAZvZF021822 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 11 May 2016 06:35:57 -0400 Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id CFFE67F6B0; Wed, 11 May 2016 10:35:56 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 0C22BABF7; Wed, 11 May 2016 10:35:55 +0000 (UTC) From: Hannes Reinecke To: Christophe Varoqui Date: Wed, 11 May 2016 12:35:53 +0200 Message-Id: <1462962953-9492-1-git-send-email-hare@suse.de> X-Greylist: Sender IP whitelisted by DNSRBL, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 11 May 2016 10:35:57 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Wed, 11 May 2016 10:35:57 +0000 (UTC) for IP:'195.135.220.15' DOMAIN:'mx2.suse.de' HELO:'mx2.suse.de' FROM:'hare@suse.de' RCPT:'' X-RedHat-Spam-Score: -3.317 (BAYES_50, DCC_REPUT_00_12, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, SPF_PASS) 195.135.220.15 mx2.suse.de 195.135.220.15 mx2.suse.de X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Scanned-By: MIMEDefang 2.75 on 10.5.110.25 X-loop: dm-devel@redhat.com Cc: Hannes Reinecke , dm-devel@redhat.com Subject: [dm-devel] libmultipath: use poll() in uevent_listen() X-BeenThere: dm-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: device-mapper development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP As we're not modifying the signal mask anymore we can switch back to normal 'poll' instead of 'ppoll'. Signed-off-by: Hannes Reinecke --- libmultipath/uevent.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/libmultipath/uevent.c b/libmultipath/uevent.c index fbe9c44..454b819 100644 --- a/libmultipath/uevent.c +++ b/libmultipath/uevent.c @@ -477,7 +477,6 @@ int uevent_listen(struct udev *udev) int fd, fd_ep = -1, socket_flags, events; int need_failback = 1; int timeout = 30; - sigset_t mask; LIST_HEAD(uevlisten_tmp); /* @@ -528,22 +527,20 @@ int uevent_listen(struct udev *udev) goto out; } - pthread_sigmask(SIG_SETMASK, NULL, &mask); events = 0; while (1) { struct uevent *uev; struct udev_device *dev; struct pollfd ev_poll; - struct timespec poll_timeout; + int poll_timeout; int fdcount; memset(&ev_poll, 0, sizeof(struct pollfd)); ev_poll.fd = fd; ev_poll.events = POLLIN; - memset(&poll_timeout, 0, sizeof(struct timespec)); - poll_timeout.tv_sec = timeout; + poll_timeout = timeout * 1000; errno = 0; - fdcount = ppoll(&ev_poll, 1, &poll_timeout, &mask); + fdcount = poll(&ev_poll, 1, poll_timeout); if (fdcount && ev_poll.revents & POLLIN) { timeout = 0; dev = udev_monitor_receive_device(monitor);