From patchwork Thu Apr 27 17:11:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 9703253 X-Patchwork-Delegate: snitzer@redhat.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 650B7602CC for ; Thu, 27 Apr 2017 17:12:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5A0D626E16 for ; Thu, 27 Apr 2017 17:12:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4EAB028635; Thu, 27 Apr 2017 17:12:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 8731D26E16 for ; Thu, 27 Apr 2017 17:12:44 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5597580067; Thu, 27 Apr 2017 17:12:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 5597580067 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=sandisk.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=dm-devel-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 5597580067 Authentication-Results: mx1.redhat.com; dkim=fail reason="signature verification failed" (1024-bit key) header.d=sharedspace.onmicrosoft.com header.i=@sharedspace.onmicrosoft.com header.b="Vzi5PE4b" Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 058A1171B4; Thu, 27 Apr 2017 17:12:43 +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 BF36318523D4; Thu, 27 Apr 2017 17:12:42 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v3RHCe6I029887 for ; Thu, 27 Apr 2017 13:12:40 -0400 Received: by smtp.corp.redhat.com (Postfix) id 0303A17B5A; Thu, 27 Apr 2017 17:12:40 +0000 (UTC) Delivered-To: dm-devel@redhat.com Received: from mx1.redhat.com (ext-mx07.extmail.prod.ext.phx2.redhat.com [10.5.110.31]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 05AE717B79; Thu, 27 Apr 2017 17:12:37 +0000 (UTC) Received: from esa6.hgst.iphmx.com (unknown [216.71.154.45]) (using TLSv1.2 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 42D9CC04BD3E; Thu, 27 Apr 2017 17:12:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 42D9CC04BD3E Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=sandisk.com Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=Bart.VanAssche@sandisk.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 42D9CC04BD3E X-IronPort-AV: E=Sophos;i="5.37,384,1488816000"; d="scan'208";a="14364392" Received: from mail-by2nam03lp0049.outbound.protection.outlook.com (HELO NAM03-BY2-obe.outbound.protection.outlook.com) ([216.32.180.49]) by ob1.hgst.iphmx.com with ESMTP; 28 Apr 2017 01:11:40 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=u60gfOJrv49kvxSHwOKVEaB8VuIfnrpcHS7LEpsn6j4=; b=Vzi5PE4br6WtcHo06bBbWyWeioM0p3SFKAxGUAzYb2KNP+stMJeqFpby88FoeruokRPtOsArgFEJqVdGIQ9SupeAHj32Q9X6pEA1jG/YJgsN5FBK0+Ii2pHPuz4Qv8DO5X6ifmaKXfXb7lt313crIc7uCcFedrAz+oEOP6eS3h0= Received: from CY4PR04CA0037.namprd04.prod.outlook.com (10.172.133.23) by BLUPR0401MB1762.namprd04.prod.outlook.com (10.162.215.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.12; Thu, 27 Apr 2017 17:11:37 +0000 Received: from BN3NAM04FT053.eop-NAM04.prod.protection.outlook.com (2a01:111:f400:7e4e::203) by CY4PR04CA0037.outlook.office365.com (2603:10b6:903:c6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13 via Frontend Transport; Thu, 27 Apr 2017 17:11:36 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.225) smtp.mailfrom=sandisk.com; redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 63.163.107.225 as permitted sender) receiver=protection.outlook.com; client-ip=63.163.107.225; helo=milsmgep14.sandisk.com; Received: from milsmgep14.sandisk.com (63.163.107.225) by BN3NAM04FT053.mail.protection.outlook.com (10.152.93.2) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1047.9 via Frontend Transport; Thu, 27 Apr 2017 17:11:36 +0000 Received: from MILHUBIP03.sdcorp.global.sandisk.com (Unknown_Domain [10.201.67.162]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (Symantec Messaging Gateway) with SMTP id 9C.F2.19026.64622095; Thu, 27 Apr 2017 10:11:34 -0700 (PDT) Received: from milsmgip11.sandisk.com (10.177.9.6) by MILHUBIP03.sdcorp.global.sandisk.com (10.177.9.96) with Microsoft SMTP Server id 14.3.319.2; Thu, 27 Apr 2017 10:11:28 -0700 X-AuditID: 0ac94371-41ba798000004a52-2e-590226467b1a Received: from exp-402881.sdcorp.global.sandisk.com ( [10.177.8.100]) by (Symantec Messaging Gateway) with SMTP id 60.F6.11415.04622095; Thu, 27 Apr 2017 10:11:28 -0700 (PDT) From: Bart Van Assche To: Mike Snitzer Date: Thu, 27 Apr 2017 10:11:23 -0700 Message-ID: <20170427171126.26814-11-bart.vanassche@sandisk.com> In-Reply-To: <20170427171126.26814-1-bart.vanassche@sandisk.com> References: <20170427171126.26814-1-bart.vanassche@sandisk.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrHLMWRmVeSWpSXmKPExsXCddJ5ka6bGlOkwbsdPBZ7381mtWjb+JXR gcnj/b6rbAGMUVw2Kak5mWWpRfp2CVwZh7+sZC3Y7Frxc/sa5gbGk5ZdjJwcEgImEtsOzWfv YuTiEBJYyiTx8dExJghnG6NE3+EXLDBVtx98harazCgxa8tpRpAEm4CRxLf3M4GKODhEBFQl bk1zAQkzC7hLnH75jg3EFhawkpi1byXYHBagkh1Hl4HZvAIOEvdX74aaLy9xdstOZhCbEyi+ /fxcsPFCAvYS/xb8ZQTZKyFwn0Vi0uc5rBDNghInZz5hgVgmIXHwxQtmiAZ1iZNL5jNNYBSa haRsFpKyBYxMqxjFcjNzinPTUwsMTfSKE/NSMouz9ZLzczcxQkK1cAfj69vehxgFOBiVeHgZ PjBGCrEmlhVX5h5ilOBgVhLhPanMFCnEm5JYWZValB9fVJqTWnyIUZqDRUmcN0t2aoSQQHpi SWp2ampBahFMlomDU6qBUaGdfYruPy5n/WcS4Y6+T+t1pNmu3bl+vOLZM5HWa1vu3ddivLBh 7t69Wq4MovkfnzKWLdSa2i5Y17khzzfQxT3zDf/pddwGYddufw1cniYq+mF/np9S7lVrU+lr 9goczdcvp2gvV2X0Mdn/kDnWb/KU67pxk8w8+v4pcnX6m+jeMbA6EflKiaU4I9FQi7moOBEA x8ry01ECAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkuLIzCtJLcpLzFFi42Lh2siRouugxhRp8PGDvsXBn22MFnvfzWa1 aNv4ldGB2eP9vqtsHtPWnGcKYIrisklJzcksSy3St0vgyjj8ZSVrwWbXip/b1zA3MJ607GLk 5JAQMJG4/eArexcjF4eQwEZGie7uFYwgCTYBI4lv72eydDFycIgIqErcmuYCEmYWcJdobn3O BGILC1hJzNq3kgXEZgEq2XF0GZjNK+Agcfz1XzaI+fISZ7fsZAaxOYHi28/PBRsvJGAv8W/B X8YJjNwLGBlWMYrlZuYU56ZnFhga6hUn5qVkFmfrJefnbmIEe5gzcgfj04nmhxiZODilGhjZ 2AI4zBae0BL69tpkGcvPhTbZpieCufezR+aF3YqSbtqVv9E0a1r/Ck5TZsHK1cxGh6KTFlqY Sn47d3vGF557C3fs4/f5ndLBLb/e8aLSX8nAqPmHOCd12Jfz8TfFLecpbHLX3NHnYGTKkL3m Wu6SsC8zlINuHzLTmr3//Bady7ldZT90QpRYijMSDbWYi4oTATN1dkygAQAA MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.225; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(39400400002)(39840400002)(39410400002)(39850400002)(39860400002)(39450400003)(2980300002)(438002)(189002)(199003)(9170700003)(5003940100001)(189998001)(33646002)(106466001)(450100002)(4326008)(38730400002)(110136004)(107886003)(77096006)(50466002)(50986999)(8676002)(76176999)(36756003)(53936002)(86362001)(54906002)(81166006)(1076002)(2906002)(6666003)(5660300001)(356003)(8936002)(6916009)(50226002)(47776003)(2950100002)(305945005); DIR:OUT; SFP:1102; SCL:1; SRVR:BLUPR0401MB1762; H:milsmgep14.sandisk.com; FPR:; SPF:Pass; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3NAM04FT053; 1:hA9G+KJO7aDrwmkYYAOIeQswsXGZj3TiVQRkjztBZA91OZX27KqXQzD2iiyp/qlgfWFbfFD7Mm41J8y65KsKhS+Q71WDwuLZ0x6LmcjmJ7HDEcyEHxSgyMAdoGEUAFU7fu+OZUM5frivN5dRHgBMKvCre5p/6bvbpf3khSo5NGcYDgupbgd36qFjM3Y1bJH/1VE2X4IxFS5Qy692+9XuTKXqlv0p+Rw9KrBKhxjSNMzpCHd4oKWTptsIXHSBUtvnKB4Acxya3pC6mVxRKxetO1cIHxlhMIL1lizoYjNKx1yqXyQv0bhoHb/B/DzIH8juTW9fn4TxZGgQKgUWRfUI0KC4G6GOVQpfZMD7wVRussvBSIIuJAbpmwSE3AxU5CGIpkI5GGl/A89Ee/U+mFVUn1rMGqW2Cz8t/QsFFxg0pqNE+akmKtB6V7RRBRG9po36ZpSlNzsqwmDv/ASH7nwRpZOeg2lB4o/ZCakkG8fZRJ0QuTCnsNK2/Wc7tr0PMxhL X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 004ada3b-9d04-4257-c95f-08d48d907677 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081)(201702281549075); SRVR:BLUPR0401MB1762; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0401MB1762; 3:LegM8ujz7/5/S5lOQqz56tVg/IZKpPi4Uuu1iXWQhefTlNP9kyW/kE+M7LPMDFK+730kFCSNL8mM2jc1hidSAzc+A283IGf3uYhAN2Gwo7+032cKf1w7R9Ok9VJ/yj6U45GqNl64PXyc7CR7x/7rhMs+7dh6Xz+q+MCY1LG6s9b+Np5lsi8lIM3DSnnP8dY/+2LGCTN6m/EAnrqrUvRC5smfCSvgQmL4y+RmCnnIjebDI66nlnPVeunN9G8KaG5juN7paU3snzmYes5qPhZMLzCs6fskYDuLM9BsvqHDBUBmWv1FmFOoC/bA3p9rj6YgWJUlNEz4/QxPK2/ea2tNN31YB+lCjIloGPFL08UryvvJOJ/rcbYuzvupC9EKYAvdWgz7OKXPzML15JMsoDy46nwMXR/2U0Ml89ueQSsDKJ5UNrkrhGhWny1xGkY4ARHitAixHXokcmQblahjOMjSZ7r3WwSlyjAUrx9iETX1Ij7jOVugC//xlGfPDozbh3sAV9i4nUd5OZWQjddqrjs4Vw== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0401MB1762; 25:8fUA9Pckev2gWyM5L6XHF6fxWtQ+MqNrU5TNAvn/5ROXvwYIM5VB4JC5EFT8Vpocqoj63icDevwCic/R5C9ngkSwp3TSExuE5d81SW6bpvbs3lA+eaoWs9oP4et7BmHEQr7iQ3SB4dIWDmYaoHpfsZMGzlftsiIYga4B9Pd6H+fpKDRV9ZbMOGCgVkKwEppSrmxjewN3EmA7wfnhhCuKVHbIy2bm+JzMl9EhzQ8LmnjckPIWT9Pl0WYLlALHvr0eObnUmkJWqqeb+XmjBy9+EFMKdhuX6EKtpQueL7u4nJmhl7cJsp96qFd6011qvd3MKwAQEIPA3SQvAuovtX2c9TMgFRpg0c0TUhcNe57cGHF3LnBN9nxR8483wlHc4I5g1/p2AGnIInw6p13Zq0pLWi4xruxb3GLtU/MFBt7BXL8Rv61aSCnN62GZbNwwoyfWNUN3Vejc9l/1991HapQiNg==; 31:p0BCUfRlJb/UwQQQxrpR7xZEZdKnr52Y8NZOYhSSii8eWDlAeJWT0zB5lwFlVfc+oKhicnA71o04KOAtcXvs2t6WlIcwrlwoYtfdn8mW35D+95I0zzAVQO5XRDz4T9YZ1uCQ/Id/od1V+/hwQ9A5cVweRpPoSMI4cbY1FK4hQU9MNxFfYpL5ydFX0PMn0AdWj5PbH7YSos7uksPHt5r6doUdcMfxMBIxy1SgW78m4fW1iQVGIysgqcOYWthU0vLC WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; BLUPR0401MB1762; 20:5AoztG7Bpf2d5OCmk9hWiNiW8c62d4s191Q11Z4SNCrNCr5uL2/eNJ2FVaPsIC3N7ZkVkigo33S2DB8XijWcm9kwjlpyh3MxCyFNePvqIlDCJeRJv+t0lqowt8R0hvJHnfNKXoOcB2aWHKIx/qGI72qg2v+Dl0iQ/kn0tiNLL/zSA+PdAC1pdEKa3nUqqmr62o5v3unZfBQkmxx7W/9vv9UGXsXzXir+Rv8Kfa3W07U/gzCFK+1e3XukRM+pWpfbISMisml6ArdMxbSyeJbOsKlUKjKA4bhdOttn1tCXTjf9OEtMuAUs1lVxoFI3ezzsRBkVTiDQHHPHrxNcDYH8YM8nYwOos/WdSDzc+KCiNtexonzA822aX9v3ThYZmRYqmYV+YY1jF9jmnR9Eu47kNmb3GVgtbKfMaoBwvEjy6KsVAU9e9mgw9eVJJ14wDOacy/3L6pRBcZ0+eRuKd4ir/Lbjl1+NIQjSj3yK22WKXnkwJCziC/fvQS/ZoY0uxMdW X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13018025)(5005006)(8121501046)(13016025)(93006095)(93004095)(10201501046)(3002001)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123562025)(20161123564025)(20161123558100)(20161123555025)(6072148); SRVR:BLUPR0401MB1762; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0401MB1762; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0401MB1762; 4:5qPiZH9pkmx69IavzdaYoneGPHELpxPMX4agr4B/UvtkT1nGRydxXYDqZQ3jhZOwp/OxHwBk+w3YlI1uxq92/G9sIWY5Q1d1PqLdDnAlZUGJG/x+efsbRtinL5AyooDps1+9QrZaYQ9sxSJNcWShDsNu8i0/lPE3usKYg+TgPUlwuO0RkC4KNKKQ8+ThYRmF5NGRakPFxrmDeMsXWv+Okf17KG7VECVDBxp9APvHID3PF+SL7G1Safng3qqPoBpuazJaCsg2LyE+C9tZ/vqnZ+qzoRhHaF1gs4rrEL081mh2B2jSPZikwlo9CvJXmUGmsjyeDBepwYcozoaCM8+YUWCn/u56gg9UexW/BN023BfFgVNk+pPas6Z3bciHjBA4WlHUbeIzrSj4CWMfqOzSNDJ2JOt+FC5e8SxFZNWHT4k0QI1u9kzfX6Qp5wnSmTfYflLRLGm0GwN67MlZQOFlTImEG6en9EHqmcs3dzai93z7GG1w/29v9B37aC/nYilTlwHbegSTb3ulezlzYAxD84nUt19x87JpVGhBgAEBLs75BhvHQiUsmNkJ2Us4gN6pZcEU7YpJHXIfAZ4WTfSbrynUnygdmGdzOcHhFUYvMr9Qie9IjxJ6qMQAgQmE3r6H6rjm8dYvNzCgNTQm84CyvGJNaC2dF210BoSdhkaIRpb9LVCcvl1M0iJoS7aLcpDevSewrWt3X+oOZ7AiGbOS02hpPDSB/Ajw0iQk8zAIXy7nS3lcMDGRF7dDM7z0Tua7OopKpRZG3oj+M1irhXaAMBR5pmv8XWUSrZ38fkNfFzgEfn7o1cIoPin9VjeslyZh+afNtdkb/C5gv82bYxjs3tOSy++WUIGWUtjig7+d/rwj040jaKSQalBsmqD+lelu X-Forefront-PRVS: 029097202E X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0401MB1762; 23:A8zc4jVYGKbDUReprP5g8y1BtZRNms2kZiZTEVu?= =?us-ascii?Q?6dMT7pyZ3/2pnyYVGO9JrIBFZXyX8KXsTxqnI8MRnWHuGB9vz68fy6CqPVed?= =?us-ascii?Q?MR8sTQjS6YYDmsJoL6JKLzc/zUaFOioK4+LESsZ8zkQ8CEyk9hNz+cgodco+?= =?us-ascii?Q?19r5ixaZeddCAvyOn3B9mGMMsEXfm86AA1RsB0L3e/qG52XfXMU51QTnmIJF?= =?us-ascii?Q?Z7sKYiuSVwEOneAvbLBjqNgwj7qmU1po1IPDTQsY9/Nzu9jZik8GcwpX3zIo?= =?us-ascii?Q?aG9vqvayKbaOcipvv10Fyzkmc0xHHBwus4+pgHycglB+KSSkgQ0BjknhC91z?= =?us-ascii?Q?0rkr+KOO9XJLtMjZeeELXBi+aiemmF4n7o7mgeD9TB9i2Y6jMlEmQPsK7Mbk?= =?us-ascii?Q?6Q3rEFlV3IJ0EdR8+ujqfyAapBrp8BjYJaOf++zMSIlZ48oXwwF8PYwAPbWr?= =?us-ascii?Q?1Dh3wkqi+HypjDqcBAAV7phJNaS0kpYBbVqRGuq2yqghWr8CxU/EjgKRHTEu?= =?us-ascii?Q?XNRDDIxg6qYPP5fclh6+xqq+kR0m/ENphLcNSilnhjSXDNqM99dLaLdkgMe2?= =?us-ascii?Q?m1KDCDmIYQ4g/ynKOv7pvTf/YIyAXjcbPoKDjKabB5sm0fFYYaFPpIJ8M1ue?= =?us-ascii?Q?0W2qg5rDlfBH+peGbrVQKNqU2VEDtkyqIRzUEzIwuAjWaoujlXnOcR+ICEz2?= =?us-ascii?Q?iWWjNvmP7CihUPlQtv+X0sPeSud8fqAhDr1bZWX+eQxkAblAn+DReIAsW+Pr?= =?us-ascii?Q?6eOM98xBM4wlqwNE5iWQM5XgpNdnFDEmVndiozZ/PbPqW9PCLFyRWH7YjU7+?= =?us-ascii?Q?2Kk5+5q8PIPABmOEBc8bxvlLxi+CxlIp5ctaaUODFfAop6fJzLjIk++I2QWb?= =?us-ascii?Q?MMzTDCFnBBdxSLFbknz7k3efy6AJxnMDLEVSVBfm96+Ywt+p3Vv2RKFoLFRh?= =?us-ascii?Q?20XCZ3iujKHNl18rWhNYm3C5SVmeCH8t3p60lG2nkYfM8GFFT3LvnFir4DjK?= =?us-ascii?Q?zdGFKOZaY1+DvZxl9aGTVvZvRmriQ9ufKiCOH+rn9NBplenCB/uf8b3c7sVs?= =?us-ascii?Q?TUfKlLNIkC7jPvzZNRejb2nPZ/44B?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0401MB1762; 6:22NpdZwog0O9bnf8FfCyRaHarVBjTq+ORzani/Hqcp1JTOdAFMHiHqyg10Dg+xPy0/4UCz3MZfM1ROpceoaA2xMGergCTDER/boq5cOGr7nW7ewTeG4MnagLyVq7wkV1sR1r8eDIWktcQuQTGbevQGBxxn2ZMPNo6+iBexEJrsX4KllomCk3nQHyfkGugPYPEJ2cp4b5D1GJo4UnMwHS6etdU5hhR3cGm4hO2mEiJi8tKTmGQVGU8rBRknnH6owEdyDgcE+elIYavBGT8miegML7gHlZ3CKA14MhG8Y9P/WWt+0ipft561AartmwfJa5tggP0B4vij92+ScMsUgjlzwi6oORjs0krmHw6RoZuY0htf9noN/SL9YxiQ3+BMPT21imDA2Qmg5taB5ExP45HjNO02dvqUF9pOP4QoNLMWPVgF6iEKOnmha+DmSTJ3Y03O+OZEZTp5i9glJQawqCb8+lL9h11pg5obODkV6Y5bd2c3ChOgLEJri6ZhkYKng2NTGzWerviy4nXiEbqGlA5ZNcLpd0FYztEH2XLhqaQB8=; 5:9mybrNW7MejJc6poKPGUj10PWOwDhGa7/qDDHI4QprrVUkh5ZsYoh2FxAadUUO0z6Fkl8g0xBQK+WGXJNbniUqmlu4WbpN51Je+mmds0nE/fbrPYwvkocbVaHWwjbujDiNt/hVN88xkt+iXFbzrVaA==; 24:KaFjiW0bBSNDxXKTSIhpbagEIZY0wdIXz/qBuLk5EpkffqGQHkbr6fHugHqbEJ4CCoRGaZxQhRiBYkrwPyA5JdH5wdW6AF8YnAp4t3qtHNA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0401MB1762; 7:Mkjvzmoxm2AUDUKpsKK+cwsNesAayePHFUan0LExw6CLTfDh2pGVllLUCqDbdoVLXK4P+kfoK3ZjX6M+DYvReLF1TyrVzq/8H3sEOa0a3QlGrJ4M4yWd0oXzTGIeQUxlHMb/9MsTH7Haahbo7hOa3CGX12sFVTSxkTu6abVutxwSVoGyzrbKgp8vtZzEJzvyCffcmguWnTG/fz2XDLRTB6vUDvvi/YNsGf0gkIAhifULBf6kS/B7ug+VbsZbs9SGTP0VfOnE3jCytn7ncfUtqgZaeTNvOrlEAxrXskvdVv9ckR780nLSAjt9i6oTszptnkYmBrZEWjl02DHBIPp+2A==; 20:mZSNh38ftTNOIF9ZXS/A2qZ9WdgEKYWArOwSJGgo6Nxn0Ipw7tSJap0wpP0UAB6N0qA/Q8Hk2lQtRub2aqDUqfDAAmJWipAGEucZx7RwsBYQYHDVp2C5WKgeCe/NvHbAljuWpfOGtZnziflHXr6NXXtzZfJYcjJ2TcxYG+5TPbY= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Apr 2017 17:11:36.3763 (UTC) X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=b61c8803-16f3-4c35-9b17-6f65f441df86; Ip=[63.163.107.225]; Helo=[milsmgep14.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0401MB1762 X-Greylist: Delayed for 22:34:01 by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Thu, 27 Apr 2017 17:12:10 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Thu, 27 Apr 2017 17:12:10 +0000 (UTC) for IP:'216.71.154.45' DOMAIN:'[216.71.154.45]' HELO:'esa6.hgst.iphmx.com' FROM:'Bart.VanAssche@sandisk.com' RCPT:'' X-RedHat-NoPTR: 216.71.154.45 has sent a message and has no valid PTR record X-RedHat-Spam-Score: 1.193 * (BAYES_50, DCC_REPUT_00_12, DKIM_SIGNED, DKIM_VALID, RDNS_NONE) 216.71.154.45 [216.71.154.45] 216.71.154.45 [216.71.154.45] X-Scanned-By: MIMEDefang 2.78 on 10.5.110.31 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: dm-devel@redhat.com Cc: Bart Van Assche , dm-devel@redhat.com Subject: [dm-devel] [PATCH v2 10/13] dm: Introduce enum dm_queue_mode 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: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Thu, 27 Apr 2017 17:12:43 +0000 (UTC) X-Virus-Scanned: ClamAV using ClamSMTP Introduce an enumeration type for the queue mode. This patch does not change any functionality but makes the dm code easier to read. Signed-off-by: Bart Van Assche Reviewed-by: Hannes Reinecke --- drivers/md/dm-core.h | 2 +- drivers/md/dm-ioctl.c | 2 +- drivers/md/dm-mpath.c | 5 ++++- drivers/md/dm-table.c | 14 +++++++------- drivers/md/dm.c | 14 +++++++++----- drivers/md/dm.h | 12 +++++++----- include/linux/device-mapper.h | 14 ++++++++------ 7 files changed, 37 insertions(+), 26 deletions(-) diff --git a/drivers/md/dm-core.h b/drivers/md/dm-core.h index 136fda3ff9e5..b92f74d9a982 100644 --- a/drivers/md/dm-core.h +++ b/drivers/md/dm-core.h @@ -47,7 +47,7 @@ struct mapped_device { struct request_queue *queue; int numa_node_id; - unsigned type; + enum dm_queue_mode type; /* Protect queue and type against concurrent access. */ struct mutex type_lock; diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c index 4da6fc6b1ffd..9b1ce440fc70 100644 --- a/drivers/md/dm-ioctl.c +++ b/drivers/md/dm-ioctl.c @@ -1268,7 +1268,7 @@ static int populate_table(struct dm_table *table, return dm_table_complete(table); } -static bool is_valid_type(unsigned cur, unsigned new) +static bool is_valid_type(enum dm_queue_mode cur, enum dm_queue_mode new) { if (cur == new || (cur == DM_TYPE_BIO_BASED && new == DM_TYPE_DAX_BIO_BASED)) diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c index 4e4d53faf2d4..286d74593b2c 100644 --- a/drivers/md/dm-mpath.c +++ b/drivers/md/dm-mpath.c @@ -90,7 +90,7 @@ struct multipath { atomic_t pg_init_in_progress; /* Only one pg_init allowed at once */ atomic_t pg_init_count; /* Number of times pg_init called */ - unsigned queue_mode; + enum dm_queue_mode queue_mode; struct mutex work_mutex; struct work_struct trigger_event; @@ -1707,6 +1707,9 @@ static void multipath_status(struct dm_target *ti, status_type_t type, case DM_TYPE_MQ_REQUEST_BASED: DMEMIT("queue_mode mq "); break; + default: + WARN_ON_ONCE(true); + break; } } } diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c index 92dbc85af53a..6692571336c7 100644 --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c @@ -30,7 +30,7 @@ struct dm_table { struct mapped_device *md; - unsigned type; + enum dm_queue_mode type; /* btree table */ unsigned int depth; @@ -821,19 +821,19 @@ void dm_consume_args(struct dm_arg_set *as, unsigned num_args) } EXPORT_SYMBOL(dm_consume_args); -static bool __table_type_bio_based(unsigned table_type) +static bool __table_type_bio_based(enum dm_queue_mode table_type) { return (table_type == DM_TYPE_BIO_BASED || table_type == DM_TYPE_DAX_BIO_BASED); } -static bool __table_type_request_based(unsigned table_type) +static bool __table_type_request_based(enum dm_queue_mode table_type) { return (table_type == DM_TYPE_REQUEST_BASED || table_type == DM_TYPE_MQ_REQUEST_BASED); } -void dm_table_set_type(struct dm_table *t, unsigned type) +void dm_table_set_type(struct dm_table *t, enum dm_queue_mode type) { t->type = type; } @@ -875,7 +875,7 @@ static int dm_table_determine_type(struct dm_table *t) struct dm_target *tgt; struct dm_dev_internal *dd; struct list_head *devices = dm_table_get_devices(t); - unsigned live_md_type = dm_get_md_type(t->md); + enum dm_queue_mode live_md_type = dm_get_md_type(t->md); if (t->type != DM_TYPE_NONE) { /* target already set the table's type */ @@ -984,7 +984,7 @@ static int dm_table_determine_type(struct dm_table *t) return 0; } -unsigned dm_table_get_type(struct dm_table *t) +enum dm_queue_mode dm_table_get_type(struct dm_table *t) { return t->type; } @@ -1035,7 +1035,7 @@ bool dm_table_all_blk_mq_devices(struct dm_table *t) static int dm_table_alloc_md_mempools(struct dm_table *t, struct mapped_device *md) { - unsigned type = dm_table_get_type(t); + enum dm_queue_mode type = dm_table_get_type(t); unsigned per_io_data_size = 0; struct dm_target *tgt; unsigned i; diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 78706a04bab4..7161c7804363 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -1797,13 +1797,13 @@ void dm_unlock_md_type(struct mapped_device *md) mutex_unlock(&md->type_lock); } -void dm_set_md_type(struct mapped_device *md, unsigned type) +void dm_set_md_type(struct mapped_device *md, enum dm_queue_mode type) { BUG_ON(!mutex_is_locked(&md->type_lock)); md->type = type; } -unsigned dm_get_md_type(struct mapped_device *md) +enum dm_queue_mode dm_get_md_type(struct mapped_device *md) { return md->type; } @@ -1830,7 +1830,7 @@ EXPORT_SYMBOL_GPL(dm_get_queue_limits); int dm_setup_md_queue(struct mapped_device *md, struct dm_table *t) { int r; - unsigned type = dm_get_md_type(md); + enum dm_queue_mode type = dm_get_md_type(md); switch (type) { case DM_TYPE_REQUEST_BASED: @@ -1861,6 +1861,8 @@ int dm_setup_md_queue(struct mapped_device *md, struct dm_table *t) if (type == DM_TYPE_DAX_BIO_BASED) queue_flag_set_unlocked(QUEUE_FLAG_DAX, md->queue); break; + case DM_TYPE_NONE: + WARN_ON_ONCE(true); } return 0; @@ -2546,8 +2548,10 @@ int dm_noflush_suspending(struct dm_target *ti) } EXPORT_SYMBOL_GPL(dm_noflush_suspending); -struct dm_md_mempools *dm_alloc_md_mempools(struct mapped_device *md, unsigned type, - unsigned integrity, unsigned per_io_data_size) +struct dm_md_mempools *dm_alloc_md_mempools(struct mapped_device *md, + enum dm_queue_mode type, + unsigned integrity, + unsigned per_io_data_size) { struct dm_md_mempools *pools = kzalloc_node(sizeof(*pools), GFP_KERNEL, md->numa_node_id); unsigned int pool_size = 0; diff --git a/drivers/md/dm.h b/drivers/md/dm.h index f298b01f7ab3..4b3b8587cb72 100644 --- a/drivers/md/dm.h +++ b/drivers/md/dm.h @@ -64,7 +64,7 @@ void dm_table_presuspend_undo_targets(struct dm_table *t); void dm_table_postsuspend_targets(struct dm_table *t); int dm_table_resume_targets(struct dm_table *t); int dm_table_any_congested(struct dm_table *t, int bdi_bits); -unsigned dm_table_get_type(struct dm_table *t); +enum dm_queue_mode dm_table_get_type(struct dm_table *t); struct target_type *dm_table_get_immutable_target_type(struct dm_table *t); struct dm_target *dm_table_get_immutable_target(struct dm_table *t); struct dm_target *dm_table_get_wildcard_target(struct dm_table *t); @@ -76,8 +76,8 @@ struct dm_md_mempools *dm_table_get_md_mempools(struct dm_table *t); void dm_lock_md_type(struct mapped_device *md); void dm_unlock_md_type(struct mapped_device *md); -void dm_set_md_type(struct mapped_device *md, unsigned type); -unsigned dm_get_md_type(struct mapped_device *md); +void dm_set_md_type(struct mapped_device *md, enum dm_queue_mode type); +enum dm_queue_mode dm_get_md_type(struct mapped_device *md); struct target_type *dm_get_immutable_target_type(struct mapped_device *md); int dm_setup_md_queue(struct mapped_device *md, struct dm_table *t); @@ -204,8 +204,10 @@ void dm_kcopyd_exit(void); /* * Mempool operations */ -struct dm_md_mempools *dm_alloc_md_mempools(struct mapped_device *md, unsigned type, - unsigned integrity, unsigned per_bio_data_size); +struct dm_md_mempools *dm_alloc_md_mempools(struct mapped_device *md, + enum dm_queue_mode type, + unsigned integrity, + unsigned per_bio_data_size); void dm_free_md_mempools(struct dm_md_mempools *pools); /* diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index a7e6903866fd..9df51dcdcf2a 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h @@ -22,11 +22,13 @@ struct bio_vec; /* * Type of table, mapped_device's mempool and request_queue */ -#define DM_TYPE_NONE 0 -#define DM_TYPE_BIO_BASED 1 -#define DM_TYPE_REQUEST_BASED 2 -#define DM_TYPE_MQ_REQUEST_BASED 3 -#define DM_TYPE_DAX_BIO_BASED 4 +enum dm_queue_mode { + DM_TYPE_NONE = 0, + DM_TYPE_BIO_BASED = 1, + DM_TYPE_REQUEST_BASED = 2, + DM_TYPE_MQ_REQUEST_BASED = 3, + DM_TYPE_DAX_BIO_BASED = 4, +}; typedef enum { STATUSTYPE_INFO, STATUSTYPE_TABLE } status_type_t; @@ -464,7 +466,7 @@ void dm_table_add_target_callbacks(struct dm_table *t, struct dm_target_callback * Useful for "hybrid" target (supports both bio-based * and request-based). */ -void dm_table_set_type(struct dm_table *t, unsigned type); +void dm_table_set_type(struct dm_table *t, enum dm_queue_mode type); /* * Finally call this to make the table ready for use.