From patchwork Tue Sep 15 21:45:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Marzinski X-Patchwork-Id: 11777889 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A6971618 for ; Tue, 15 Sep 2020 21:45:31 +0000 (UTC) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 37DD120639 for ; Tue, 15 Sep 2020 21:45:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="A5YYNCZE" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 37DD120639 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=tempfail smtp.mailfrom=dm-devel-bounces@redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600206329; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=Vb0T159WLWO/N2M3ImrUouCxGUanCbZPhq0+GXvj/xs=; b=A5YYNCZEvAvxGotxmdbmtoGOiyNkqfT44hgpJAhkS5S/EexrwDpdAsr7sJrqpuRBSKiHHq VYPXG20pbvEvVWpeQjbWHByS8/xFS0UqFI50Gdk+WBYaqqOtMQBNOXWLQoBxt7CpWsQJX9 PE0f+6aGTcTu4VhPHr/Y52JTXa+riqI= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-271-FaGD7CUZNa-aT24VnhsG8g-1; Tue, 15 Sep 2020 17:45:25 -0400 X-MC-Unique: FaGD7CUZNa-aT24VnhsG8g-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id B4B991074648; Tue, 15 Sep 2020 21:45:20 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 5B1A21002D57; Tue, 15 Sep 2020 21:45:20 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 4076E44A5B; Tue, 15 Sep 2020 21:45:19 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 08FLjIcK031391 for ; Tue, 15 Sep 2020 17:45:18 -0400 Received: by smtp.corp.redhat.com (Postfix) id 805EA5FC16; Tue, 15 Sep 2020 21:45:18 +0000 (UTC) Delivered-To: dm-devel@redhat.com Received: from octiron.msp.redhat.com (octiron.msp.redhat.com [10.15.80.209]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6A7BD1C4; Tue, 15 Sep 2020 21:45:15 +0000 (UTC) Received: from octiron.msp.redhat.com (localhost.localdomain [127.0.0.1]) by octiron.msp.redhat.com (8.14.9/8.14.9) with ESMTP id 08FLjDZu006537; Tue, 15 Sep 2020 16:45:13 -0500 Received: (from bmarzins@localhost) by octiron.msp.redhat.com (8.14.9/8.14.9/Submit) id 08FLjDCs006536; Tue, 15 Sep 2020 16:45:13 -0500 From: Benjamin Marzinski To: Christophe Varoqui Date: Tue, 15 Sep 2020 16:45:09 -0500 Message-Id: <1600206312-6497-1-git-send-email-bmarzins@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: dm-devel@redhat.com Cc: device-mapper development , Martin Wilck Subject: [dm-devel] [PATCH 0/3] add library to check if device is a valid path 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-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dm-devel-bounces@redhat.com X-Mimecast-Spam-Score: 0.001 X-Mimecast-Originator: redhat.com The main part of the this patchset is the first patch, which adds a new library interface to check whether devices are valid paths. This was designed for use in the Storage Instantiation Daemon (SID). https://github.com/sid-project Hopefully, I've removed all the controvertial bits from the last time I proposed this library. The second patch adds get_uid fallback code for dasd devices. The third patch adds a config option to force multpath to get the device uid from the fallback methods. This is currently necessary for claiming multipath devices with SID (instead of using multipath.rules), since SID doesn't currently get the UID information itself, and it is called by udev before this information is added to the udev database. I would like to have this patch included in upstream, since it will make it easier for people to try out SID, without having to recompile multipath. However, I understand that there's not much reason to set this outside of SID. I have a git branch that is Martin's upstream-queue branch with these patches added, that I people can use if this patch isn't acceptable. https://github.com/bmarzins/rh-multipath-tools/tree/sid-patches Benjamin Marzinski (3): multipath: add libmpathvalid library libmultipath: add uid failback for dasd devices libmultipath: add ignore_udev_uid option Makefile | 3 +- libmpathvalid/Makefile | 38 +++++++ libmpathvalid/libmpathvalid.version | 10 ++ libmpathvalid/mpath_valid.c | 168 ++++++++++++++++++++++++++++ libmpathvalid/mpath_valid.h | 57 ++++++++++ libmultipath/config.h | 1 + libmultipath/defaults.h | 1 + libmultipath/dict.c | 4 + libmultipath/discovery.c | 54 +++++++-- libmultipath/discovery.h | 8 +- libmultipath/uevent.c | 2 +- multipath/multipath.conf.5 | 13 +++ multipathd/main.c | 7 +- 13 files changed, 355 insertions(+), 11 deletions(-) create mode 100644 libmpathvalid/Makefile create mode 100644 libmpathvalid/libmpathvalid.version create mode 100644 libmpathvalid/mpath_valid.c create mode 100644 libmpathvalid/mpath_valid.h