From patchwork Fri Nov 18 20:50:37 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 9437385 X-Patchwork-Delegate: christophe.varoqui@free.fr 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 A152860238 for ; Fri, 18 Nov 2016 20:52:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8AB0829A23 for ; Fri, 18 Nov 2016 20:52:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7E99729A22; Fri, 18 Nov 2016 20:52: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=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 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.wl.linuxfoundation.org (Postfix) with ESMTPS id 89B7529A22 for ; Fri, 18 Nov 2016 20:52:43 +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 uAIKouiM051602; Fri, 18 Nov 2016 15:50:58 -0500 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id uAIKoss5017686 for ; Fri, 18 Nov 2016 15:50:54 -0500 Received: from mx1.redhat.com (ext-mx01.extmail.prod.ext.phx2.redhat.com [10.5.110.25]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id uAIKosGS020688 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Fri, 18 Nov 2016 15:50:54 -0500 Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0047.outbound.protection.outlook.com [104.47.42.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 26DCD8124A for ; Fri, 18 Nov 2016 20:50:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sandiskcorp.onmicrosoft.com; s=selector1-sandisk-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=v2ThPmmVQmnTMHRIPJtuv9TvX7lDIdX5Jw0Y7aXtcTA=; b=VnGINrtIjYGPhdiupidVE48F9WlKRTv59X6kpSmEfzHVs/liW18Q1Z1R03L7jubOH096ed7aAhFAGyBlgBwYndn8D4I8Zf0B0fJerrHqujaLN1y9VaWdJpoCiuPhwd7S0dveercD7IxgVsjNFf5p+nPXYf5BVMoTdu+XdZ5a4/8= Received: from BY2PR02CA0028.namprd02.prod.outlook.com (10.141.216.18) by MWHPR02MB2862.namprd02.prod.outlook.com (10.175.50.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.721.10; Fri, 18 Nov 2016 20:50:46 +0000 Received: from BL2FFO11FD044.protection.gbl (2a01:111:f400:7c09::162) by BY2PR02CA0028.outlook.office365.com (2a01:111:e400:2c40::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.721.10 via Frontend Transport; Fri, 18 Nov 2016 20:50:45 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.21) smtp.mailfrom=sandisk.com; opensvc.com; dkim=none (message not signed) header.d=none;opensvc.com; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 63.163.107.21 as permitted sender) receiver=protection.outlook.com; client-ip=63.163.107.21; helo=milsmgep15.sandisk.com; Received: from milsmgep15.sandisk.com (63.163.107.21) by BL2FFO11FD044.mail.protection.outlook.com (10.173.161.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.721.5 via Frontend Transport; Fri, 18 Nov 2016 20:50:44 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:2680; Count:17 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 70.67.02899.4976F285; Fri, 18 Nov 2016 12:41:59 -0800 (PST) Received: from milsmgip12.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; Fri, 18 Nov 2016 12:50:40 -0800 X-AuditID: 0ac94369-5f3ff70000000b53-41-582f6794e353 Received: from exp-402881.sandisk.com ( [10.177.9.6]) by (Symantec Messaging Gateway) with SMTP id 70.DA.03661.D996F285; Fri, 18 Nov 2016 12:50:40 -0800 (PST) To: Christophe Varoqui From: Bart Van Assche Message-ID: <3f706543-7b03-cab2-c6b3-bc8f7d72d029@sandisk.com> Date: Fri, 18 Nov 2016 12:50:37 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrELMWRmVeSWpSXmKPExsXCddJ5ke70dP0Ig2uNGhbrPs5ls9j7bjar A5PHmtunWT3e77vKFsAUxWWTkpqTWZZapG+XwJVxoeMPU8GepUwVk5ddZGlgbHvB2MXIySEh YCJx/s489i5GLg4hgaVMEtM7T7KCJIQEtjFKdG71hil6MP0dO0R8MaNE+yVBEFtEwFxi/rll LCA2s4CxxNcdv8GGsgkYSXx7PxMsLizgKnHkezcziM0rYCfRtvon2HwWAVWJtw0nwepFBSIk Nn2dwwJRIyhxcuYTIJsDaKamxPpd+hDj5SW2v53DDHKnhMAnFonmhYuYIO5Rlzi5ZD7TBEbB WUjaZyG0z0LSvoCReRWjWG5mTnFuemqBoalecWJeSmZxtl5yfu4mRkjIZu5gvPvE+xCjAAej Eg+vhKh+hBBrYllxZe4hRgkOZiUR3pJEoBBvSmJlVWpRfnxRaU5q8SFGaQ4WJXFet3tfwoQE 0hNLUrNTUwtSi2CyTBycUg2MUq+P+n/ov3L/x4X9sdynFk9XquC7EdD/5NnPbSrx3sLbQ3Kd yqvdF5U9/dgY1TpR8WP/sRMhqbeUszytZ91YGv1q07vQJDs7B66PU9is58gqdE5L78ndcfzt ycOHWTjX93056CJwe87qJSele+7oGH/LKYr9ZCUUrPbjClvUDPbwsB+sn9hFlViKMxINtZiL ihMBxxu5XFUCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrNJMWRmVeSWpSXmKPExsXCtZGTTXdBpn6EwdRmIYt1H+eyWex9N5vV gcljze3TrB7v911lC2CK4rJJSc3JLEst0rdL4Mq40PGHqWDPUqaKycsusjQwtr1g7GLk5JAQ MJF4MP0dexcjF4eQwEJGiZPvloAlRATMJeafW8YCYjMLGEssXj+fDcRmEzCS+PZ+JlhcWMBV 4sj3bmYQm1fATqJt9U9WEJtFQFXibcNJsDmiAhESm77OYYGoEZQ4OfMJ1Ex1iT/zLjFD2PIS 29/OYZ7AyDMLSdksJGWzkJQtYGRexSiWm5lTnJueWWBopFecmJeSWZytl5yfu4kREjxROxiv TzQ/xMjEwSnVwDj/Z5Kp75f/68tnWDA6FsrJhk+TOtHiUjxVd4ZFIC9zXe3loN76ma2HjAqF k+80fl+sZj9d4v+jjOgPp5gnlJ3bsemr4oeOvX5bizvm6ffZtk3grvNPbbizom5zMVPlupfl V1Kv/BR2a72zrDrtXGeJ1qrNy0SvHk928dg3K/mDvMjzRNnjSkosxRmJhlrMRcWJAINX5NDO AQAA X-IncomingHeaderCount: 17 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.21; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(40224003)(199003)(189002)(33646002)(106466001)(2270400002)(2906002)(4326007)(92566002)(54356999)(47776003)(77096005)(53416004)(31686004)(65806001)(50986999)(65956001)(64126003)(65826007)(68736007)(8676002)(5660300001)(8936002)(50466002)(6666003)(69596002)(6916009)(83506001)(110136003)(189998001)(87936001)(23676002)(36756003)(97736004)(81166006)(31696002)(86362001)(305945005)(81156014)(356003)(7846002)(626004)(4001350100001)(230700001)(38730400001)(575784001); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR02MB2862; H:milsmgep15.sandisk.com; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD044; 1:RH7DfvMzRjQ0J+qYYHTPHD6NTi6clHZo2F3dpt1X9yWJVRD7npceZ1tghLRrc1e0XBs3U38lz0wIxoJhHwoJM+W5jKv9ps4hXp14H41X9VtvcShVZOSeUMIE9mwpkrFVx6w+Z8tbjGu3cpxV5gRmRyMYU7hi8+6M6pNyGnIW/1CP3aaYtqyqaHmFiTPUZNz7oZqlk4yZ4QTGG2xfieGzzFk/92VMwgT6ebecxoLVvXv+DxG3F8bZxAvVa+Tuhr1RNfHDrT4oP4J7hG+yinpJFSTZs++PKNf6Dw5NTeLR+nYk2xU6MvBRM+TvvWrRiQ2nagjcZGDgkjTDEzd/c1C465UlwPiuv8GZfFBqpfwaob/auoCmuhefHphc8MpChv786HLFnXe5kWdh7lFgpz/bH37acALj2MYgPS5h7Q1FUcP4ULPFq33ahJ9flUmg1waZ+s1faPvWeP7SrkG+XW7o0RDt3Era95OWkyFuJNsxqt3f3Hw8I7JO7x2OoQ/MCyE1 X-Microsoft-Exchange-Diagnostics: 1; MWHPR02MB2862; 2:k5y+5BR3Tztqj3apXQ4IyioWf9zZhkZzUDLf2sdRh2N4t05Uor0bD4vEWL+QKMs0sqgQSP8P5VLuig8vyLDVzZF1cZMLesCAgaAlojvtccw/yKKpZntbH+BAvV7DaMSLaLKMxUX0DeOyUW1FZA6w5EzYZegZnqZeevbiICW63pU=; 3:rk1dJgb5r4sNMcDMS/F5ZuFMS5edNsUrGhgn7Xgkakfpy7iLP8uKE2WP+NZT7j+uxgcqFWx4KUM6778xXAeQNbOwTVHZD9PDohQ3by1/bbY683e8Q8mgxEIdOpBPlJ8UXHgAj9XbqumhihwVLWsmVwkzm9Owl5K9TrfjCq+jUUxGSeLtsZCEOK1MRU89bl3Hw06j+lCvQgeoRLaJBZS9HFnR+fIo7u6Zs6diau/I0k1BorIJSAI3n2+K0OZ6tjIK8QOw2VkElXUtekrdNxXTgFQVePK3uFRxUlKz/aERQRk= X-MS-Office365-Filtering-Correlation-Id: 6a01131b-8d96-4ea9-1d04-08d40ff4917f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002); SRVR:MWHPR02MB2862; X-Microsoft-Exchange-Diagnostics: 1; MWHPR02MB2862; 25:psFMKJFuvugdt1XTQn/xGID42sqzFYBQ7oavjIDl0mVD679CKLfAlcjGn2Y3YrD5FgHyfI6CLCH81dh25H89A4wiw0V3gDr1ifdlDAJaGHrfyp7PdQkUC8kkbMhpd7YhESOfzgLfav8vdicvAZMWpY848vGQ47TVG6Zq96wGUUWcp8qTGszpy+sptsf2ELu2k0IItJwp3VKlsPpN6nVVmeqmzDGUu/T32TLuA//yUlWqQGdAW8IEyq+ybz9MYBkt3FHonVSF+Vi12HeoeN6WWf9w4GZWLPvlgM09Foi1s5pX1tgW6bHopYyjTWQLiMOaQiQ2tR/EXsK/U5mXaDw79aBPaBaoovrDiBBlbytrtcjhFGUZ//oMosxRqRjPNQoP3Xb8/bzICOSB4IoWOh0w+vVk1RInWBIaiPXe8QmJ6MRMWd2pN0699ZcZaqbmvhhAeYDO3cjNw9qGlL2oRShtATo0wIx1EWd3V0h0TN/dyawdIsHzmyOWasR0N+nrx4EyddXVz2i+pmceBg6rhKoh6aYAwDMUrg/kFo2bZfyHlRkKazC7Yr10p8dfh7oLIw82EEDUouousJUoqAvJZ6Fnz/K8+nHtcP75x2KzvjceofHTKY2LxenPRuZsQBdspR7A2OHbrMqNq9GPNmu0Y+28dxlO29hlEWrT3bGnsZGcWQHkaU69QN84Xjw+pzR750Wv98mP5ZE0+DdKja7WypOLi8PPHUYTu2ffl5afNbXhHbc+AFapYcw6caCkl62x34do8Irkk0cn87jzxWOGf5OFJqbOMvp6FHSRG7Fp0TNyFO33AO/awmbR8HB7XA+1qfPfXiU6ijVAF9c0T188CTiKxQ== X-Microsoft-Exchange-Diagnostics: 1; MWHPR02MB2862; 31:7T1qjKHXNxrQj9aDRkpHFr64DNxSrhCiEWqiSoGypMeL/GDYBQdjCVjVslCN8tV7IJG62W650dlTUfUU/kNRIQ75rEqtX2gzcFv9Y4h97FjbW2SI1LW3EdRl1SY8qcLe/nH848Cg+HCTYLKjuusHTWKDmlL62bTxbw8Ish3ObexkwdGihsag/3g6L2ncZJ6kheyufD99N2x/6NvVso83Iw3Vu2d3DX6wsz0Fp3CzihACB7lURZHPpSXOfF1ysg6dp0SON3RvPlo09TxiKOpGcw==; 20:r2EtEANIkTRX11KraBq2XbyR5WaeslxP0iNTLffbHbBLH3W/RafTsV0Q9dB8Rt3xnTe4HUq1xtsfwuXWQzEpOq2NCqBSS0Ofc9PlLNUou4CvwGLRlgjVniWf/+t/rYWGg2XtA2B6xA6HorPeCK7tEKatXSO8U4v0SEdgbhSkjgBKNnmW4P3BfDU3nVXm0YSOcCrPgrSHgCTp49WQ1LWOQa+UGUapRakScz2W41wfp25EBbbSdJo1SiTB4W/L9ciZY+dr+OAgkg//zituybGzM6I6stTisQJGUVVIvQG35+bNoa0EId4UrwUGfGCuiZ3AAic72j+E2HT6HuWsHQCc7vNv/+hk4He4WVWUcbYo5HZ48Z8mMe1H8qnIrM+RSdQDq4Nkzjaz5o5cTcNbSjK8V0okWV1GCGIpZrKOBQkf2/WDVDwA4g/MQjXpXO25i3slXsiq8bddO8EQNW2ZcaEB0zYe5VKPL64B5UpR0Av+JAL4nopt8l8Pk+zYUEnfZ7O/ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6060326)(6040281)(601004)(2401047)(5005006)(13018025)(13016025)(8121501046)(10201501046)(3002001)(6055026)(6041223)(6061324); SRVR:MWHPR02MB2862; BCL:0; PCL:0; RULEID:; SRVR:MWHPR02MB2862; X-Microsoft-Exchange-Diagnostics: 1; MWHPR02MB2862; 4:7jyyJeaSVnwym+s8WjStnFXxclrWAMeIlRndQ3f39ULNkX7PrP/VHowhMmHOpj0Kjnp13Ak1h85ScuQ45HEITvI74pQTJDu2Nn6Jv7jPw9wMTRGUA1j72d1VQ7gZ1Jx1K8DIgwqbkbs9Phg4oZVE+XQkAI8Io3o9mxOQfLrojO7nExHoAO9bKb+DOGN3vjCoWigdhFnVjwR7O8Oe8f24VGoAae5aXF2AVIMo/b5XB/UXk5vDs8XtNyRrTGk1yYyw3YP1ng5oudGsVgPBPdyOcfWw727S6onoduHtwhOqwawGka3ohTFirL6P/Yd75O1BvqUUCMA5+Hu9eP15/4S4q1fvzouL+vnwXRlu6dfHePxhHXAMr26bdKNHRhn1TCtlpmV3/wSnCLBgH6rsGRU8eXvf1BD5qPuIwDXo5SKIqTHPjmfG5D5LuczNnI4OzMqJyXPB1TsCN/uBO6EejA658zr/QnP47dQ9MhdesXjso354xK+xGVy2QptAixKy48ihbBf+NcBxt4GIxs6PJf0335Cp8Y5VabESbP+JeTpM2ciW9iK/VIZCGedqQxRG9g9Q X-Forefront-PRVS: 01304918F3 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjAyTUIyODYyOzIzOlVCdjlxQkExQ2xWa3pJazZGTUs5K0hId1ZF?= =?utf-8?B?cjZub0p2MzAxVmpPV2pkcFBGVlRNNUY0cjFPb0w4VGF5WXVhR0wvTW9qcjdy?= =?utf-8?B?MldOSnV0dVNjdzduZmRCdkp0Mkp4bzZZRmMxam11Y29lQ1NrZy9OeGhBQWsx?= =?utf-8?B?aEZNdWplTUpreG01NzdzK05rL1JkK1ZRYXRWOURKQUVzS21BWkdISXBvdS8z?= =?utf-8?B?SlRYMi93M24yWSt2Y283a0ZoazRia2hnSUozNmN2U2VMWU53SjJZd21KVjIy?= =?utf-8?B?aVAyeGpYSm9iaUJtWms5YldSNWdqOTQ3TzdXS3lkVHZDbStVazF6VGppTWFQ?= =?utf-8?B?NUpjY1ZQR1BLVTFaNlF5VHpzMmNOTEF5ZVNsRjVxdDhJbXUzL0xhRDlOVkhX?= =?utf-8?B?QTFKMEpjdlFTN2xDbGU1elFNZzBUQVFEajBBa2lWTmdJTGpQa3UrQjZlZCtB?= =?utf-8?B?M2xLQ2JTaVlIdDBXNlpZZzF3RkxkbktSMG9QdmN0VFhRTys1dGJodkcwTUhV?= =?utf-8?B?elpHbUFVb1loeDIyOGpScEY2d3NMUjlySEZ6R0tFUWxOUHNybVdPS3F2NVU1?= =?utf-8?B?Q0pWTVRyeUhzVWE3SEJFZEJqK3p3K1g5a3R4OEFnYmpMUFpad2FGSDhwWXhy?= =?utf-8?B?b0hxVG9udENDRGhzUW9xTVVMa3BtWHpqeUhoQXR2Q1VxazY4ekdKRVIwQTUr?= =?utf-8?B?WndmSU5xMnBsNmNhay9jU3Bsb0VyQ3M0ajlaVjFiOUtxYm1aV3Z1blp3ZGVN?= =?utf-8?B?MkJzcG51QldGUFdmMFB6UlJPaFh1U21DMkNOOHNFUmVrNmkvbjBpa0poOEVE?= =?utf-8?B?MGsyVGI3NkRaRUg2RTh1TnpaSm90bTdvNjZUV2RaTDFsYUlSQ1IyWnFEcUYr?= =?utf-8?B?emJFR3dNZjJycEovZlZoRHhMcDZJZFN4ZjZ5a3V3akZpWFlrRTlVZlhBMzhP?= =?utf-8?B?SlR5b1F1NGxRRXdzVHJnY01ucE5KUmV6MXhDbllNcmp1Y1IwUHNTVHl4VjNy?= =?utf-8?B?R2kxVDV6REZ3UFdtbVdzRVJtNVhzVXNSaWxQbXFQNUxmbmtlNDVTSlhXQzRt?= =?utf-8?B?TkRtZnNaSXhYRmhNQzdiYjkvejlNekV1VDJHMk1kQTExMm0rYkhDeWVtazZi?= =?utf-8?B?ZDF6QkkxcEx1MGQ3K3luOXIvYU8rMW1naFpOay92Q2ZlNEFXaGtvNnA4OXJR?= =?utf-8?B?ekVOTk9QTWlHbzRCT3o4cmx4K0MrMVhsWWIrV01TUnhzNmdPbm96UDY3Z01z?= =?utf-8?B?ZFMxTlBvZGNmNWIvSEk4Nzh4UXNJS240RGFXWnJ1MFZZL2VGRlhId0RYcElM?= =?utf-8?B?ekxMY2x4alp0dTUzL2w2ZndGak85RUFxTk9ZK0Rta1ptRmNOWFJaTVduWGFn?= =?utf-8?B?UFFCeVV3VjRBZDZ1dkU4TDlaWjJhZzlKVTk2NFcxN1gvY0J2OWV2UmkwVnhu?= =?utf-8?B?dVRKZjNpYnFCUDV4dmt3VjZIbFlXMjVlY29hRll3Vjc3Z05zcnBvOXFGalQ0?= =?utf-8?B?NXpVRGtZVTJXUXhjTDh6WlZMVFFHSUlRa1FxWGtmNzJDRFdVZDc0QzdsVmZW?= =?utf-8?B?ZHBtVE1LK092dHpsTlNmanNTaWg2ZWFTaGdsQmp1Y3NMVitaYkRVZnYxQkJD?= =?utf-8?Q?VB+fC6gkAtSteSgKFKz0?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR02MB2862; 6:lmM31PYORZ/3xSWY2NfGzfR6Fkp0x+CfKTifQwUSVLaaJEClfl3RwwgfsUkXn8FteiNBivZOpaNX5UvzCmI3A3I8Yu1CH27lcApzvsPpYmZ96/vLvhj4IeQdP1/rLn6LQ+GTEpuKYSWt5pF20bbV3XHaJi0/qAlpIkLL9Clmf8BhIkOwnkiyyws6BSF1qtGqTB3/jfdt5ukWgCdg4KZsjCSdl8P63qPuUreBsMW9Vo4DBwT+9I7UKAP4XlfwqRqh0e5rA+yL7tIq6dQLxk9ciP5QfUMp/4Q58+9V3SNgka2DZ9m17yHt8g2aEQvOxS5gQbMLuYnCNfYsRf8HRy1DefyRxLkh9sgIZWg46cZFU5BprCMDn4M7VwafPhZ4I3uz; 5:ylIrTkxUiVmQBtUu4OdkL/yHhuKghlB7AoMS47vfQBju6D9pG8QBrtSHSURrja8Ms6o3LHCZD0kQk11bOacsszhjsoSzAPF9KPYVIjOqOZCPgnxp0D14kvFnO4WT3O0HFGtld9tFoTaxDvx0Z6hVcw==; 24:N8dpdUUxFSAtxS9M6poe+aK08W/Uw/P7rzhgIYqVyMdZayfxkw5hyINQ28bIzfXU8d9CxKV4fsF7Y8Hge67YydTzuLaPqWMASPFzUSby/Ro= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR02MB2862; 7:75rsV0LwO6WwkVlcbT0yB0upA7WUSDqst+y1pRO72TKK46u5cHpcBDe047J7mr3GQqWe9948jK+cC9pIotEf5egAFrD/lmic8BxF37UbJq9oUKf0yOjaDdj7xbRV+zn6FwV61x7hNRHRy5dICQWnzw7uio7IbbG9eVN8rHDaXSeBfNb+gHH7UwSnkyVfSET79SNGgTQS5+r0seGmnnkkLalHhhGT1aUxIrW9nX137cZqHtq8xTKGG1FnVCICM2cHX0qd7y4z3U1QsI0kC3STrMZT24jPA3Q44UOugHQZ58cWc9UpM+nW1yf6+XxsliZUQiVEK0eic7btw08SxLuTuA75JqNIuYF1AMC68+2drFY=; 20:uP7kDR29ejXAz66+a9x+egyxsP04pPdnX5iLvEDBGI2/c4Q7VUDw5C35cjIf3nSkb32FtZ6XbyXpq/QG+dpfOZ8jIXbYfHGlKsyjunoMNpbJTxHvH10r1PprasxFXCs9Lqc8zeLQtAlD1abCFp5FUFQc9+r3T2zRDrTkK/l/LcNNsX1Fd7sVoUKD936ncXSKATEQU0uTtpTKvDYb0/YaR3/9i1FHWXUMYi+J88ZhnpWRTK65xuE5kVnIuA4vIecU X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2016 20:50:44.9802 (UTC) X-MS-Exchange-CrossTenant-Id: fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d; Ip=[63.163.107.21]; Helo=[milsmgep15.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR02MB2862 X-Greylist: Sender passed SPF test, Sender IP whitelisted by DNSRBL, ACL 198 matched, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 18 Nov 2016 20:50:51 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 18 Nov 2016 20:50:51 +0000 (UTC) for IP:'104.47.42.47' DOMAIN:'mail-by2nam03on0047.outbound.protection.outlook.com' HELO:'NAM03-BY2-obe.outbound.protection.outlook.com' FROM:'Bart.VanAssche@sandisk.com' RCPT:'' X-RedHat-Spam-Score: 1.887 * (BAYES_80, DCC_REPUT_13_19, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS) 104.47.42.47 mail-by2nam03on0047.outbound.protection.outlook.com 104.47.42.47 mail-by2nam03on0047.outbound.protection.outlook.com X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Scanned-By: MIMEDefang 2.78 on 10.5.110.25 X-loop: dm-devel@redhat.com Cc: device-mapper development Subject: [dm-devel] [PATCH] Remove superfluous instances of the "extern" keyword 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-Virus-Scanned: ClamAV using ClamSMTP This avoids that the sparse static analyzer complains about the "extern" keyword. Signed-off-by: Bart Van Assche --- kpartx/devmapper.c | 18 ++++----- kpartx/lopart.c | 15 +++----- libmpathpersist/mpath_pr_ioctl.c | 2 +- libmultipath/blacklist.c | 9 ++--- libmultipath/callout.c | 3 +- libmultipath/checkers/cciss_tur.c | 3 +- libmultipath/checkers/emc_clariion.c | 3 +- libmultipath/checkers/hp_sw.c | 3 +- libmultipath/checkers/rdac.c | 3 +- libmultipath/checkers/tur.c | 3 +- libmultipath/config.c | 6 +-- libmultipath/configure.c | 21 +++++----- libmultipath/devmapper.c | 49 +++++++++-------------- libmultipath/discovery.c | 5 +-- libmultipath/dmparser.c | 8 ++-- libmultipath/hwtable.c | 3 +- libmultipath/pgpolicies.c | 23 +++++------ libmultipath/print.c | 55 ++++++++++---------------- libmultipath/propsel.c | 75 ++++++++++++------------------------ libmultipath/structs.c | 21 ++++------ libmultipath/structs_vec.c | 49 +++++++++-------------- libmultipath/switchgroup.c | 6 +-- libmultipath/uevent.c | 12 ++---- libmultipath/util.c | 3 +- 24 files changed, 145 insertions(+), 253 deletions(-) diff --git a/kpartx/devmapper.c b/kpartx/devmapper.c index 474d879..2acae25 100644 --- a/kpartx/devmapper.c +++ b/kpartx/devmapper.c @@ -14,8 +14,7 @@ #define MAX_PREFIX_LEN 8 #define PARAMS_SIZE 1024 -extern int -dm_prereq (char * str, int x, int y, int z) +int dm_prereq(char * str, int x, int y, int z) { int r = 1; struct dm_task *dmt; @@ -52,8 +51,8 @@ out: return r; } -extern int -dm_simplecmd (int task, const char *name, int no_flush, uint16_t udev_flags) { +int dm_simplecmd(int task, const char *name, int no_flush, uint16_t udev_flags) +{ int r = 0; int udev_wait_flag = (task == DM_DEVICE_RESUME || task == DM_DEVICE_REMOVE); @@ -90,10 +89,10 @@ out: return r; } -extern int -dm_addmap (int task, const char *name, const char *target, - const char *params, uint64_t size, int ro, const char *uuid, int part, - mode_t mode, uid_t uid, gid_t gid) { +int dm_addmap(int task, const char *name, const char *target, + const char *params, uint64_t size, int ro, const char *uuid, + int part, mode_t mode, uid_t uid, gid_t gid) +{ int r = 0; struct dm_task *dmt; char *prefixed_uuid = NULL; @@ -154,8 +153,7 @@ addout: return r; } -extern int -dm_map_present (char * str, char **uuid) +int dm_map_present(char * str, char **uuid) { int r = 0; struct dm_task *dmt; diff --git a/kpartx/lopart.c b/kpartx/lopart.c index 14af34f..2eb3f63 100644 --- a/kpartx/lopart.c +++ b/kpartx/lopart.c @@ -62,8 +62,7 @@ xstrdup (const char *s) return t; } -extern int -is_loop_device (const char *device) +int is_loop_device(const char *device) { struct stat statbuf; int loopmajor; @@ -96,8 +95,7 @@ is_loop_device (const char *device) #define SIZE(a) (sizeof(a)/sizeof(a[0])) -extern char * -find_loop_by_file (const char * filename) +char *find_loop_by_file(const char *filename) { DIR *dir; struct dirent *dent; @@ -144,8 +142,7 @@ find_loop_by_file (const char * filename) return found; } -extern char * -find_unused_loop_device (void) +char *find_unused_loop_device(void) { char dev[20], *next_loop_dev = NULL; int fd, next_loop = 0, somedev = 0, someloop = 0, loop_known = 0; @@ -231,8 +228,7 @@ find_unused_loop_device (void) return NULL; } -extern int -set_loop (const char *device, const char *file, int offset, int *loopro) +int set_loop(const char *device, const char *file, int offset, int *loopro) { struct loop_info loopinfo; int fd, ffd, mode; @@ -284,8 +280,7 @@ set_loop (const char *device, const char *file, int offset, int *loopro) return 0; } -extern int -del_loop (const char *device) +int del_loop(const char *device) { int retries = 5; int fd; diff --git a/libmpathpersist/mpath_pr_ioctl.c b/libmpathpersist/mpath_pr_ioctl.c index 8b9ac3d..31b2fe6 100644 --- a/libmpathpersist/mpath_pr_ioctl.c +++ b/libmpathpersist/mpath_pr_ioctl.c @@ -36,7 +36,7 @@ void decode_transport_id(struct prin_fulldescr *fdesc, unsigned char * p, int le int get_prin_length(int rq_servact); int mpath_isLittleEndian(void); -extern unsigned int mpath_mx_alloc_len; +unsigned int mpath_mx_alloc_len; int prout_do_scsi_ioctl(char * dev, int rq_servact, int rq_scope, unsigned int rq_type, struct prout_param_descriptor *paramp, int noisy) diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c index f6c4506..d59d37e 100644 --- a/libmultipath/blacklist.c +++ b/libmultipath/blacklist.c @@ -13,8 +13,7 @@ #include "config.h" #include "blacklist.h" -extern int -store_ble (vector blist, char * str, int origin) +int store_ble(vector blist, char * str, int origin) { struct blentry * ble; @@ -47,8 +46,7 @@ out: } -extern int -alloc_ble_device (vector blist) +int alloc_ble_device(vector blist) { struct blentry_device * ble = MALLOC(sizeof(struct blentry_device)); @@ -63,8 +61,7 @@ alloc_ble_device (vector blist) return 0; } -extern int -set_ble_device (vector blist, char * vendor, char * product, int origin) +int set_ble_device(vector blist, char * vendor, char * product, int origin) { struct blentry_device * ble; diff --git a/libmultipath/callout.c b/libmultipath/callout.c index 4d1b067..dc18e02 100644 --- a/libmultipath/callout.c +++ b/libmultipath/callout.c @@ -137,8 +137,7 @@ int execute_program(char *path, char *value, int len) return retval; } -extern int -apply_format (char * string, char * cmd, struct path * pp) +int apply_format(char * string, char * cmd, struct path * pp) { char * pos; char * dst; diff --git a/libmultipath/checkers/cciss_tur.c b/libmultipath/checkers/cciss_tur.c index a0ffffe..9d79f96 100644 --- a/libmultipath/checkers/cciss_tur.c +++ b/libmultipath/checkers/cciss_tur.c @@ -64,8 +64,7 @@ void libcheck_repair (struct checker * c) return; } -extern int -libcheck_check (struct checker * c) +int libcheck_check(struct checker * c) { int rc; int ret; diff --git a/libmultipath/checkers/emc_clariion.c b/libmultipath/checkers/emc_clariion.c index a7b9f86..9c1ffed 100644 --- a/libmultipath/checkers/emc_clariion.c +++ b/libmultipath/checkers/emc_clariion.c @@ -50,8 +50,7 @@ struct emc_clariion_checker_LU_context { int inactive_snap; }; -extern void -hexadecimal_to_ascii(char * wwn, char *wwnstr) +void hexadecimal_to_ascii(char * wwn, char *wwnstr) { int i,j, nbl; diff --git a/libmultipath/checkers/hp_sw.c b/libmultipath/checkers/hp_sw.c index 0cc1111..6019c9d 100644 --- a/libmultipath/checkers/hp_sw.c +++ b/libmultipath/checkers/hp_sw.c @@ -128,8 +128,7 @@ do_tur (int fd, unsigned int timeout) return 0; } -extern int -libcheck_check (struct checker * c) +int libcheck_check(struct checker * c) { char buff[MX_ALLOC_LEN]; diff --git a/libmultipath/checkers/rdac.c b/libmultipath/checkers/rdac.c index 68682c8..a643a4a 100644 --- a/libmultipath/checkers/rdac.c +++ b/libmultipath/checkers/rdac.c @@ -262,8 +262,7 @@ const char } } -extern int -libcheck_check (struct checker * c) +int libcheck_check(struct checker * c) { struct volume_access_inq inq; int ret, inqfail; diff --git a/libmultipath/checkers/tur.c b/libmultipath/checkers/tur.c index 92200aa..4d6c3c2 100644 --- a/libmultipath/checkers/tur.c +++ b/libmultipath/checkers/tur.c @@ -314,8 +314,7 @@ static void copy_msg_to_checker(void *c_p, const char *msg) strlcpy(c->message, msg, sizeof(c->message)); } -extern int -libcheck_check (struct checker * c) +int libcheck_check(struct checker * c) { struct tur_checker_context *ct = c->context; struct timespec tsp; diff --git a/libmultipath/config.c b/libmultipath/config.c index 2d629ef..32b41a2 100644 --- a/libmultipath/config.c +++ b/libmultipath/config.c @@ -125,8 +125,7 @@ find_hwe (vector hwtable, char * vendor, char * product, char * revision) return ret; } -extern struct mpentry * -find_mpe (vector mptable, char * wwid) +struct mpentry *find_mpe(vector mptable, char *wwid) { int i; struct mpentry * mpe; @@ -141,8 +140,7 @@ find_mpe (vector mptable, char * wwid) return NULL; } -extern char * -get_mpe_wwid (vector mptable, char * alias) +char *get_mpe_wwid(vector mptable, char *alias) { int i; struct mpentry * mpe; diff --git a/libmultipath/configure.c b/libmultipath/configure.c index d428099..e5cc5f1 100644 --- a/libmultipath/configure.c +++ b/libmultipath/configure.c @@ -253,8 +253,7 @@ int rr_optimize_path_order(struct pathgroup *pgp) return 0; } -extern int -setup_map (struct multipath * mpp, char * params, int params_size) +int setup_map(struct multipath *mpp, char *params, int params_size) { struct pathgroup * pgp; struct config *conf; @@ -505,8 +504,7 @@ select_action (struct multipath * mpp, vector curmp, int force_reload) return; } -extern int -reinstate_paths (struct multipath * mpp) +int reinstate_paths(struct multipath *mpp) { int i, j; struct pathgroup * pgp; @@ -582,8 +580,7 @@ fail: #define DOMAP_EXIST 2 #define DOMAP_DRY 3 -extern int -domap (struct multipath * mpp, char * params, int is_daemon) +int domap(struct multipath *mpp, char *params, int is_daemon) { int r = DOMAP_FAIL; struct config *conf; @@ -748,8 +745,8 @@ out: return ret; } -extern int -coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, int force_reload, enum mpath_cmds cmd) +int coalesce_paths(struct vectors *vecs, vector newmp, char *refwwid, + int force_reload, enum mpath_cmds cmd) { int r = 1; int k, i; @@ -953,9 +950,8 @@ coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, int force_r * 1 - failure * 2 - blacklist */ -extern int -get_refwwid (enum mpath_cmds cmd, char * dev, enum devtypes dev_type, - vector pathvec, char **wwid) +int get_refwwid(enum mpath_cmds cmd, char *dev, enum devtypes dev_type, + vector pathvec, char **wwid) { int ret = 1; struct path * pp; @@ -1126,7 +1122,8 @@ out: return 1; } -extern int reload_map(struct vectors *vecs, struct multipath *mpp, int refresh, int is_daemon) +int reload_map(struct vectors *vecs, struct multipath *mpp, int refresh, + int is_daemon) { char params[PARAMS_SIZE] = {0}; struct path *pp; diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c index 5aea5b6..868d2c0 100644 --- a/libmultipath/devmapper.c +++ b/libmultipath/devmapper.c @@ -94,8 +94,8 @@ dm_write_log (int level, const char *file, int line, const char *f, ...) return; } -extern void -dm_init(int v) { +void dm_init(int v) +{ dm_log_init(&dm_write_log); dm_log_init_verbose(v + 3); } @@ -200,8 +200,7 @@ dm_drv_prereq (void) return 1; } -extern int -dm_prereq (void) +int dm_prereq(void) { if (dm_lib_prereq()) return 1; @@ -249,13 +248,13 @@ out: return r; } -extern int -dm_simplecmd_flush (int task, const char *name, uint16_t udev_flags) { +int dm_simplecmd_flush (int task, const char *name, uint16_t udev_flags) +{ return dm_simplecmd(task, name, 0, 1, udev_flags, 0); } -extern int -dm_simplecmd_noflush (int task, const char *name, uint16_t udev_flags) { +int dm_simplecmd_noflush (int task, const char *name, uint16_t udev_flags) +{ return dm_simplecmd(task, name, 1, 1, udev_flags, 0); } @@ -338,8 +337,8 @@ addout: return r; } -extern int -dm_addmap_create (struct multipath *mpp, char * params) { +int dm_addmap_create (struct multipath *mpp, char * params) +{ int ro; for (ro = 0; ro <= 1; ro++) { @@ -369,8 +368,7 @@ dm_addmap_create (struct multipath *mpp, char * params) { #define ADDMAP_RW 0 #define ADDMAP_RO 1 -extern int -dm_addmap_reload (struct multipath *mpp, char *params, int flush) +int dm_addmap_reload(struct multipath *mpp, char *params, int flush) { int r; uint16_t udev_flags = (flush ? 0 : MPATH_UDEV_RELOAD_FLAG) | @@ -397,8 +395,7 @@ dm_addmap_reload (struct multipath *mpp, char *params, int flush) return r; } -extern int -dm_map_present (const char * str) +int dm_map_present(const char * str) { int r = 0; struct dm_task *dmt; @@ -425,8 +422,7 @@ out: return r; } -extern int -dm_get_map(const char * name, unsigned long long * size, char * outparams) +int dm_get_map(const char *name, unsigned long long *size, char *outparams) { int r = 1; struct dm_task *dmt; @@ -492,8 +488,7 @@ uuidout: return r; } -extern int -dm_get_uuid(char *name, char *uuid) +int dm_get_uuid(char *name, char *uuid) { char uuidtmp[WWID_SIZE]; @@ -533,8 +528,7 @@ dm_compare_uuid(const char* mapname1, const char* mapname2) return 1; } -extern int -dm_get_status(char * name, char * outstatus) +int dm_get_status(char *name, char *outstatus) { int r = 1; struct dm_task *dmt; @@ -577,8 +571,7 @@ out: * 0 : no match * -1 : empty map */ -extern int -dm_type(const char * name, char * type) +int dm_type(const char *name, char *type) { int r = 0; struct dm_task *dmt; @@ -611,8 +604,7 @@ out: return r; } -extern int -dm_is_mpath(const char * name) +int dm_is_mpath(const char *name) { int r = 0; struct dm_task *dmt; @@ -791,8 +783,7 @@ partmap_in_use(const char *name, void *data) return 0; } -extern int -_dm_flush_map (const char * mapname, int need_sync, int deferred_remove) +int _dm_flush_map(const char *mapname, int need_sync, int deferred_remove) { int r; @@ -844,8 +835,7 @@ dm_flush_map_nopaths(const char * mapname, int deferred_remove) #endif -extern int -dm_suspend_and_flush_map (const char * mapname) +int dm_suspend_and_flush_map(const char *mapname) { int s = 0, queue_if_no_path = 0; unsigned long long mapsize; @@ -884,8 +874,7 @@ dm_suspend_and_flush_map (const char * mapname) return 1; } -extern int -dm_flush_maps (void) +int dm_flush_maps(void) { int r = 0; struct dm_task *dmt; diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c index 756344f..786a7c0 100644 --- a/libmultipath/discovery.c +++ b/libmultipath/discovery.c @@ -177,7 +177,7 @@ path_discovery (vector pathvec, int flag) } #define declare_sysfs_get_str(fname) \ -extern ssize_t \ +ssize_t \ sysfs_get_##fname (struct udev_device * udev, char * buff, size_t len) \ { \ int l; \ @@ -1714,8 +1714,7 @@ get_uid (struct path * pp, int path_state, struct udev_device *udev) return 0; } -extern int -pathinfo (struct path *pp, struct config *conf, int mask) +int pathinfo(struct path *pp, struct config *conf, int mask) { int path_state; diff --git a/libmultipath/dmparser.c b/libmultipath/dmparser.c index 87e8398..b504961 100644 --- a/libmultipath/dmparser.c +++ b/libmultipath/dmparser.c @@ -140,9 +140,8 @@ assemble_map (struct multipath * mp, char * params, int len) return 0; } -extern int -disassemble_map (vector pathvec, char * params, struct multipath * mpp, - int is_daemon) +int disassemble_map(vector pathvec, char *params, struct multipath *mpp, + int is_daemon) { char * word; char * p; @@ -425,8 +424,7 @@ out: return 1; } -extern int -disassemble_status (char * params, struct multipath * mpp) +int disassemble_status(char *params, struct multipath *mpp) { char * word; char * p; diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c index 340035e..afe6c13 100644 --- a/libmultipath/hwtable.c +++ b/libmultipath/hwtable.c @@ -1106,8 +1106,7 @@ static struct hwentry default_hw[] = { }, }; -extern int -setup_default_hwtable (vector hw) +int setup_default_hwtable(vector hw) { int r = 0; struct hwentry * hwe = default_hw; diff --git a/libmultipath/pgpolicies.c b/libmultipath/pgpolicies.c index 3064aab..4ae4afb 100644 --- a/libmultipath/pgpolicies.c +++ b/libmultipath/pgpolicies.c @@ -13,8 +13,7 @@ #include "pgpolicies.h" #include "switchgroup.h" -extern int -get_pgpolicy_id (char * str) +int get_pgpolicy_id(char * str) { if (0 == strncmp(str, "failover", 8)) return FAILOVER; @@ -30,8 +29,7 @@ get_pgpolicy_id (char * str) return IOPOLICY_UNDEF; } -extern int -get_pgpolicy_name (char * buff, int len, int id) +int get_pgpolicy_name(char * buff, int len, int id) { char * s; @@ -89,8 +87,8 @@ sort_pathgroups (struct multipath *mp) { /* * One path group per unique tgt_node_name present in the path vector */ -extern int -group_by_node_name (struct multipath * mp) { +int group_by_node_name(struct multipath * mp) +{ int i, j; int * bitmap; struct path * pp; @@ -165,8 +163,8 @@ out: /* * One path group per unique serial number present in the path vector */ -extern int -group_by_serial (struct multipath * mp) { +int group_by_serial(struct multipath * mp) +{ int i, j; int * bitmap; struct path * pp; @@ -237,8 +235,7 @@ out: return 1; } -extern int -one_path_per_group (struct multipath * mp) +int one_path_per_group(struct multipath *mp) { int i; struct path * pp; @@ -275,8 +272,7 @@ out: return 1; } -extern int -one_group (struct multipath * mp) /* aka multibus */ +int one_group(struct multipath *mp) /* aka multibus */ { struct pathgroup * pgp; @@ -313,8 +309,7 @@ out: return 1; } -extern int -group_by_prio (struct multipath * mp) +int group_by_prio(struct multipath *mp) { int i; unsigned int prio; diff --git a/libmultipath/print.c b/libmultipath/print.c index 865562b..5b03383 100644 --- a/libmultipath/print.c +++ b/libmultipath/print.c @@ -942,8 +942,7 @@ snprint_pathgroup (char * line, int len, char * format, return (c - line); } -extern void -print_multipath_topology (struct multipath * mpp, int verbosity) +void print_multipath_topology(struct multipath *mpp, int verbosity) { int resize; char *buff = NULL; @@ -973,9 +972,8 @@ print_multipath_topology (struct multipath * mpp, int verbosity) FREE(buff); } -extern int -snprint_multipath_topology (char * buff, int len, struct multipath * mpp, - int verbosity) +int snprint_multipath_topology(char *buff, int len, struct multipath *mpp, + int verbosity) { int j, i, fwd = 0; struct path * pp = NULL; @@ -1247,8 +1245,7 @@ snprint_hwentry (struct config *conf, char * buff, int len, struct hwentry * hwe return fwd; } -extern int -snprint_hwtable (struct config *conf, char * buff, int len, vector hwtable) +int snprint_hwtable(struct config *conf, char *buff, int len, vector hwtable) { int fwd = 0; int i; @@ -1300,8 +1297,7 @@ snprint_mpentry (struct config *conf, char * buff, int len, struct mpentry * mpe return fwd; } -extern int -snprint_mptable (struct config *conf, char * buff, int len, vector mptable) +int snprint_mptable(struct config *conf, char *buff, int len, vector mptable) { int fwd = 0; int i; @@ -1326,8 +1322,8 @@ snprint_mptable (struct config *conf, char * buff, int len, vector mptable) return fwd; } -extern int -snprint_overrides (struct config *conf, char * buff, int len, struct hwentry *overrides) +int snprint_overrides(struct config *conf, char * buff, int len, + struct hwentry *overrides) { int fwd = 0; int i; @@ -1356,8 +1352,7 @@ out: return fwd; } -extern int -snprint_defaults (struct config *conf, char * buff, int len) +int snprint_defaults(struct config *conf, char *buff, int len) { int fwd = 0; int i; @@ -1438,8 +1433,7 @@ snprint_blacklist_devgroup (char *buff, int len, int *fwd, vector *vec) return pos; } -extern int -snprint_blacklist_report (struct config *conf, char * buff, int len) +int snprint_blacklist_report(struct config *conf, char *buff, int len) { int threshold = MAX_LINE_LEN; int fwd = 0; @@ -1501,8 +1495,7 @@ snprint_blacklist_report (struct config *conf, char * buff, int len) return fwd; } -extern int -snprint_blacklist (struct config *conf, char * buff, int len) +int snprint_blacklist(struct config *conf, char *buff, int len) { int i; struct blentry * ble; @@ -1578,8 +1571,7 @@ snprint_blacklist (struct config *conf, char * buff, int len) return fwd; } -extern int -snprint_blacklist_except (struct config *conf, char * buff, int len) +int snprint_blacklist_except(struct config *conf, char *buff, int len) { int i; struct blentry * ele; @@ -1655,8 +1647,7 @@ snprint_blacklist_except (struct config *conf, char * buff, int len) return fwd; } -extern int -snprint_status (char * buff, int len, struct vectors *vecs) +int snprint_status(char *buff, int len, struct vectors *vecs) { int fwd = 0; int i; @@ -1687,8 +1678,8 @@ snprint_status (char * buff, int len, struct vectors *vecs) return fwd; } -extern int -snprint_devices (struct config *conf, char * buff, int len, struct vectors *vecs) +int snprint_devices(struct config *conf, char * buff, int len, + struct vectors *vecs) { DIR *blkdir; struct dirent *blkdev; @@ -1756,8 +1747,7 @@ snprint_devices (struct config *conf, char * buff, int len, struct vectors *vecs /* * stdout printing helpers */ -extern void -print_path (struct path * pp, char * style) +void print_path(struct path *pp, char *style) { char line[MAX_LINE_LEN]; @@ -1766,8 +1756,7 @@ print_path (struct path * pp, char * style) printf("%s", line); } -extern void -print_multipath (struct multipath * mpp, char * style) +void print_multipath(struct multipath *mpp, char *style) { char line[MAX_LINE_LEN]; @@ -1776,8 +1765,7 @@ print_multipath (struct multipath * mpp, char * style) printf("%s", line); } -extern void -print_pathgroup (struct pathgroup * pgp, char * style) +void print_pathgroup(struct pathgroup *pgp, char *style) { char line[MAX_LINE_LEN]; @@ -1786,8 +1774,7 @@ print_pathgroup (struct pathgroup * pgp, char * style) printf("%s", line); } -extern void -print_map (struct multipath * mpp, char * params) +void print_map(struct multipath *mpp, char *params) { if (mpp->size && params) printf("0 %llu %s %s\n", @@ -1795,14 +1782,12 @@ print_map (struct multipath * mpp, char * params) return; } -extern void -print_all_paths (vector pathvec, int banner) +void print_all_paths(vector pathvec, int banner) { print_all_paths_custo(pathvec, banner, PRINT_PATH_LONG); } -extern void -print_all_paths_custo (vector pathvec, int banner, char *fmt) +void print_all_paths_custo(vector pathvec, int banner, char *fmt) { int i; struct path * pp; diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c index ec1fd92..aa7352f 100644 --- a/libmultipath/propsel.c +++ b/libmultipath/propsel.c @@ -81,8 +81,7 @@ do_attr_set(var, mp->mpe, shift, "(LUN setting)") #define set_attr_conf(var, shift) \ do_attr_set(var, conf, shift, "(config file default)") -extern int -select_mode (struct config *conf, struct multipath *mp) +int select_mode(struct config *conf, struct multipath *mp) { char *origin; @@ -95,8 +94,7 @@ out: return 0; } -extern int -select_uid (struct config *conf, struct multipath *mp) +int select_uid(struct config *conf, struct multipath *mp) { char *origin; @@ -109,8 +107,7 @@ out: return 0; } -extern int -select_gid (struct config *conf, struct multipath *mp) +int select_gid(struct config *conf, struct multipath *mp) { char *origin; @@ -128,8 +125,7 @@ out: * traverse the configuration layers from most specific to most generic * stop at first explicit setting found */ -extern int -select_rr_weight (struct config *conf, struct multipath * mp) +int select_rr_weight(struct config *conf, struct multipath * mp) { char *origin, buff[13]; @@ -144,8 +140,7 @@ out: return 0; } -extern int -select_pgfailback (struct config *conf, struct multipath * mp) +int select_pgfailback(struct config *conf, struct multipath * mp) { char *origin, buff[13]; @@ -160,8 +155,7 @@ out: return 0; } -extern int -select_pgpolicy (struct config *conf, struct multipath * mp) +int select_pgpolicy(struct config *conf, struct multipath * mp) { char *origin, buff[POLICY_NAME_SIZE]; @@ -182,8 +176,7 @@ out: return 0; } -extern int -select_selector (struct config *conf, struct multipath * mp) +int select_selector(struct config *conf, struct multipath * mp) { char *origin; @@ -236,8 +229,7 @@ out: return (user_friendly_names == USER_FRIENDLY_NAMES_ON); } -extern int -select_alias (struct config *conf, struct multipath * mp) +int select_alias(struct config *conf, struct multipath * mp) { char *origin = NULL; @@ -276,8 +268,7 @@ out: return mp->alias ? 0 : 1; } -extern int -select_features (struct config *conf, struct multipath * mp) +int select_features(struct config *conf, struct multipath *mp) { char *origin; @@ -302,8 +293,7 @@ out: return 0; } -extern int -select_hwhandler (struct config *conf, struct multipath * mp) +int select_hwhandler(struct config *conf, struct multipath *mp) { char *origin; @@ -317,8 +307,7 @@ out: return 0; } -extern int -select_checker(struct config *conf, struct path *pp) +int select_checker(struct config *conf, struct path *pp) { char *origin, *checker_name; struct checker * c = &pp->checker; @@ -346,8 +335,7 @@ out: return 0; } -extern int -select_getuid (struct config *conf, struct path * pp) +int select_getuid(struct config *conf, struct path *pp) { char *origin; @@ -400,8 +388,7 @@ do { \ } \ } while(0) -extern int -select_prio (struct config *conf, struct path * pp) +int select_prio(struct config *conf, struct path *pp) { char *origin; struct mpentry * mpe; @@ -438,8 +425,7 @@ out: return 0; } -extern int -select_no_path_retry(struct config *conf, struct multipath *mp) +int select_no_path_retry(struct config *conf, struct multipath *mp) { char *origin = NULL; char buff[12]; @@ -497,8 +483,7 @@ out: return 0; } -extern int -select_minio (struct config *conf, struct multipath * mp) +int select_minio(struct config *conf, struct multipath *mp) { unsigned int minv_dmrq[3] = {1, 1, 0}; @@ -508,8 +493,7 @@ select_minio (struct config *conf, struct multipath * mp) return select_minio_bio(conf, mp); } -extern int -select_fast_io_fail(struct config *conf, struct multipath *mp) +int select_fast_io_fail(struct config *conf, struct multipath *mp) { char *origin, buff[12]; @@ -523,8 +507,7 @@ out: return 0; } -extern int -select_dev_loss(struct config *conf, struct multipath *mp) +int select_dev_loss(struct config *conf, struct multipath *mp) { char *origin, buff[12]; @@ -539,8 +522,7 @@ out: return 0; } -extern int -select_flush_on_last_del(struct config *conf, struct multipath *mp) +int select_flush_on_last_del(struct config *conf, struct multipath *mp) { char *origin; @@ -557,8 +539,7 @@ out: return 0; } -extern int -select_reservation_key (struct config *conf, struct multipath * mp) +int select_reservation_key(struct config *conf, struct multipath *mp) { char *origin, buff[12]; @@ -572,8 +553,7 @@ out: return 0; } -extern int -select_retain_hwhandler (struct config *conf, struct multipath * mp) +int select_retain_hwhandler(struct config *conf, struct multipath *mp) { char *origin; unsigned int minv_dm_retain[3] = {1, 5, 0}; @@ -594,8 +574,7 @@ out: return 0; } -extern int -select_detect_prio (struct config *conf, struct path * pp) +int select_detect_prio(struct config *conf, struct path *pp) { char *origin; @@ -609,8 +588,7 @@ out: return 0; } -extern int -select_deferred_remove (struct config *conf, struct multipath *mp) +int select_deferred_remove(struct config *conf, struct multipath *mp) { char *origin; @@ -635,8 +613,7 @@ out: return 0; } -extern int -select_delay_watch_checks(struct config *conf, struct multipath *mp) +int select_delay_watch_checks(struct config *conf, struct multipath *mp) { char *origin, buff[12]; @@ -651,8 +628,7 @@ out: return 0; } -extern int -select_delay_wait_checks(struct config *conf, struct multipath *mp) +int select_delay_wait_checks(struct config *conf, struct multipath *mp) { char *origin, buff[12]; @@ -668,8 +644,7 @@ out: } -extern int -select_skip_kpartx (struct config *conf, struct multipath * mp) +int select_skip_kpartx (struct config *conf, struct multipath * mp) { char *origin; diff --git a/libmultipath/structs.c b/libmultipath/structs.c index e4bf4c6..ba9edf9 100644 --- a/libmultipath/structs.c +++ b/libmultipath/structs.c @@ -201,8 +201,7 @@ alloc_multipath (void) return mpp; } -extern void -free_multipath_attributes (struct multipath * mpp) +void free_multipath_attributes(struct multipath *mpp) { if (!mpp) return; @@ -439,8 +438,7 @@ find_path_by_devt (vector pathvec, char * dev_t) return NULL; } -extern int -pathcountgr (struct pathgroup * pgp, int state) +int pathcountgr(struct pathgroup *pgp, int state) { struct path *pp; int count = 0; @@ -453,8 +451,7 @@ pathcountgr (struct pathgroup * pgp, int state) return count; } -extern int -pathcount (struct multipath * mpp, int state) +int pathcount(struct multipath *mpp, int state) { struct pathgroup *pgp; int count = 0; @@ -467,8 +464,7 @@ pathcount (struct multipath * mpp, int state) return count; } -extern int -pathcmp (struct pathgroup *pgp, struct pathgroup *cpgp) +int pathcmp(struct pathgroup *pgp, struct pathgroup *cpgp) { int i, j; struct path *pp, *cpp; @@ -498,8 +494,7 @@ first_path (struct multipath * mpp) return pgp?VECTOR_SLOT(pgp->paths, 0):NULL; } -extern void -setup_feature(struct multipath * mpp, char *feature) +void setup_feature(struct multipath *mpp, char *feature) { if (!strncmp(feature, "queue_if_no_path", 16)) { if (mpp->no_path_retry <= NO_PATH_RETRY_UNDEF) @@ -507,8 +502,7 @@ setup_feature(struct multipath * mpp, char *feature) } } -extern int -add_feature (char **f, char *n) +int add_feature(char **f, char *n) { int c = 0, d, l; char *e, *p, *t; @@ -592,8 +586,7 @@ add_feature (char **f, char *n) return 0; } -extern int -remove_feature(char **f, char *o) +int remove_feature(char **f, char *o) { int c = 0, d, l; char *e, *p, *n; diff --git a/libmultipath/structs_vec.c b/libmultipath/structs_vec.c index e898528..22be8e0 100644 --- a/libmultipath/structs_vec.c +++ b/libmultipath/structs_vec.c @@ -20,8 +20,7 @@ /* * creates or updates mpp->paths reading mpp->pg */ -extern int -update_mpp_paths(struct multipath * mpp, vector pathvec) +int update_mpp_paths(struct multipath *mpp, vector pathvec) { struct pathgroup * pgp; struct path * pp; @@ -45,8 +44,7 @@ update_mpp_paths(struct multipath * mpp, vector pathvec) return 0; } -extern int -adopt_paths (vector pathvec, struct multipath * mpp) +int adopt_paths(vector pathvec, struct multipath *mpp) { int i, ret; struct path * pp; @@ -81,8 +79,7 @@ adopt_paths (vector pathvec, struct multipath * mpp) return 0; } -extern void -orphan_path (struct path * pp, const char *reason) +void orphan_path(struct path *pp, const char *reason) { condlog(3, "%s: orphan path, %s", pp->dev, reason); pp->mpp = NULL; @@ -96,8 +93,7 @@ orphan_path (struct path * pp, const char *reason) pp->fd = -1; } -extern void -orphan_paths (vector pathvec, struct multipath * mpp) +void orphan_paths(vector pathvec, struct multipath *mpp) { int i; struct path * pp; @@ -151,15 +147,13 @@ _remove_map (struct multipath * mpp, struct vectors * vecs, free_multipath(mpp, KEEP_PATHS); } -extern void -remove_map (struct multipath * mpp, struct vectors * vecs, int purge_vec) +void remove_map(struct multipath *mpp, struct vectors *vecs, int purge_vec) { _remove_map(mpp, vecs, KEEP_WAITER, purge_vec); } -extern void -remove_map_and_stop_waiter (struct multipath * mpp, struct vectors * vecs, - int purge_vec) +void remove_map_and_stop_waiter(struct multipath *mpp, struct vectors *vecs, + int purge_vec) { _remove_map(mpp, vecs, STOP_WAITER, purge_vec); } @@ -182,14 +176,12 @@ _remove_maps (struct vectors * vecs, int stop_waiter) vecs->mpvec = NULL; } -extern void -remove_maps (struct vectors * vecs) +void remove_maps(struct vectors *vecs) { _remove_maps(vecs, KEEP_WAITER); } -extern void -remove_maps_and_stop_waiters (struct vectors * vecs) +void remove_maps_and_stop_waiters(struct vectors *vecs) { _remove_maps(vecs, STOP_WAITER); } @@ -320,8 +312,8 @@ void sync_paths(struct multipath *mpp, vector pathvec) pp->mpp = mpp; } -extern int -update_multipath_strings (struct multipath *mpp, vector pathvec, int is_daemon) +int +update_multipath_strings(struct multipath *mpp, vector pathvec, int is_daemon) { if (!mpp) return 1; @@ -343,8 +335,7 @@ update_multipath_strings (struct multipath *mpp, vector pathvec, int is_daemon) return 0; } -extern void -set_no_path_retry(struct config *conf, struct multipath *mpp) +void set_no_path_retry(struct config *conf, struct multipath *mpp) { mpp->retry_tick = 0; mpp->nr_active = pathcount(mpp, PATH_UP) + pathcount(mpp, PATH_GHOST); @@ -373,9 +364,8 @@ set_no_path_retry(struct config *conf, struct multipath *mpp) } } -extern int -__setup_multipath (struct vectors * vecs, struct multipath * mpp, - int reset, int is_daemon) +int __setup_multipath(struct vectors *vecs, struct multipath *mpp, + int reset, int is_daemon) { struct config *conf; @@ -425,8 +415,7 @@ out: return 1; } -extern struct multipath * -add_map_without_path (struct vectors * vecs, char * alias) +struct multipath *add_map_without_path (struct vectors *vecs, char *alias) { struct multipath * mpp = alloc_multipath(); @@ -473,9 +462,8 @@ find_existing_alias (struct multipath * mpp, } } -extern struct multipath * -add_map_with_path (struct vectors * vecs, - struct path * pp, int add_vec) +struct multipath *add_map_with_path(struct vectors *vecs, struct path *pp, + int add_vec) { struct multipath * mpp; struct config *conf = NULL; @@ -514,8 +502,7 @@ out: return NULL; } -extern int -verify_paths(struct multipath * mpp, struct vectors * vecs) +int verify_paths(struct multipath *mpp, struct vectors *vecs) { struct path * pp; int count = 0; diff --git a/libmultipath/switchgroup.c b/libmultipath/switchgroup.c index 031c3d7..9632ce2 100644 --- a/libmultipath/switchgroup.c +++ b/libmultipath/switchgroup.c @@ -7,8 +7,7 @@ #include "structs.h" #include "switchgroup.h" -extern void -path_group_prio_update (struct pathgroup * pgp) +void path_group_prio_update(struct pathgroup *pgp) { int i; int priority = 0; @@ -32,8 +31,7 @@ path_group_prio_update (struct pathgroup * pgp) pgp->priority = 0; } -extern int -select_path_group (struct multipath * mpp) +int select_path_group(struct multipath *mpp) { int i; int max_priority = 0; diff --git a/libmultipath/uevent.c b/libmultipath/uevent.c index 19b910f..7edcce1 100644 --- a/libmultipath/uevent.c +++ b/libmultipath/uevent.c @@ -559,8 +559,7 @@ out: return err; } -extern int -uevent_get_major(struct uevent *uev) +int uevent_get_major(struct uevent *uev) { char *p, *q; int i, major = -1; @@ -579,8 +578,7 @@ uevent_get_major(struct uevent *uev) return major; } -extern int -uevent_get_minor(struct uevent *uev) +int uevent_get_minor(struct uevent *uev) { char *p, *q; int i, minor = -1; @@ -599,8 +597,7 @@ uevent_get_minor(struct uevent *uev) return minor; } -extern int -uevent_get_disk_ro(struct uevent *uev) +int uevent_get_disk_ro(struct uevent *uev) { char *p, *q; int i, ro = -1; @@ -619,8 +616,7 @@ uevent_get_disk_ro(struct uevent *uev) return ro; } -extern char * -uevent_get_dm_name(struct uevent *uev) +char *uevent_get_dm_name(struct uevent *uev) { char *p = NULL; int i; diff --git a/libmultipath/util.c b/libmultipath/util.c index 0a136b4..03a5738 100644 --- a/libmultipath/util.c +++ b/libmultipath/util.c @@ -145,8 +145,7 @@ size_t strlcat(char *dst, const char *src, size_t size) return bytes; } -extern int -devt2devname (char *devname, int devname_len, char *devt) +int devt2devname(char *devname, int devname_len, char *devt) { FILE *fd; unsigned int tmpmaj, tmpmin, major, minor;