From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Bart Van Assche To: "dan.j.williams@intel.com" , "martin.petersen@oracle.com" CC: "linux-kernel@vger.kernel.org" , "linux-block@vger.kernel.org" , "hch@lst.de" , "axboe@kernel.dk" , "linux-scsi@vger.kernel.org" , "osandov@osandov.com" , "James.Bottomley@hansenpartnership.com" , "jack@suse.cz" Subject: Re: [PATCH v2] scsi, block: fix duplicate bdi name registration crashes Date: Wed, 1 Feb 2017 20:35:20 +0000 Message-ID: <1485981306.2560.11.camel@sandisk.com> References: <148597749824.11392.9598040130844203664.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: <148597749824.11392.9598040130844203664.stgit@dwillia2-desk3.amr.corp.intel.com> Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 Return-Path: Bart.VanAssche@sandisk.com List-ID: On Wed, 2017-02-01 at 11:32 -0800, Dan Williams wrote: > diff --git a/include/linux/genhd.h b/include/linux/genhd.h > index 76f39754e7b0..27e7e12c0c2d 100644 > --- a/include/linux/genhd.h > +++ b/include/linux/genhd.h > @@ -167,6 +167,22 @@ struct blk_integrity { > }; > =20 > #endif /* CONFIG_BLK_DEV_INTEGRITY */ > +struct disk_devt { > + atomic_t count; > + void (*release)(struct disk_devt *disk_devt); > +}; > + > +static inline void put_disk_devt(struct disk_devt *disk_devt) > +{ > + if (disk_devt && atomic_dec_and_test(&disk_devt->count)) > + disk_devt->release(disk_devt); > +} > + > +static inline void get_disk_devt(struct disk_devt *disk_devt) > +{ > + if (disk_devt) > + atomic_inc(&disk_devt->count); > +} The header file is included directly or indirectly in a huge number of source files. Since neither get_disk_devt() nor put_disk_devt() are called from the I/O path, please move these functions from=A0 into block/genhd.c to keep the compilation time of the kernel as short as possible. Thanks, Bart.= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752581AbdBAUfd (ORCPT ); Wed, 1 Feb 2017 15:35:33 -0500 Received: from mail-co1nam03on0078.outbound.protection.outlook.com ([104.47.40.78]:25730 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751082AbdBAUf3 (ORCPT ); Wed, 1 Feb 2017 15:35:29 -0500 Authentication-Results: spf=pass (sender IP is 74.221.232.54) smtp.mailfrom=sandisk.com; intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=bestguesspass action=none header.from=sandisk.com; X-AuditID: ac1c2133-0c3ff70000013ebf-b4-5892c0fe9778 From: Bart Van Assche To: "dan.j.williams@intel.com" , "martin.petersen@oracle.com" CC: "linux-kernel@vger.kernel.org" , "linux-block@vger.kernel.org" , "hch@lst.de" , "axboe@kernel.dk" , "linux-scsi@vger.kernel.org" , "osandov@osandov.com" , "James.Bottomley@hansenpartnership.com" , "jack@suse.cz" Subject: Re: [PATCH v2] scsi, block: fix duplicate bdi name registration crashes Thread-Topic: [PATCH v2] scsi, block: fix duplicate bdi name registration crashes Thread-Index: AQHSfMq0wnPH7NVPh0SPNUYpKfaNWQ== Date: Wed, 1 Feb 2017 20:35:20 +0000 Message-ID: <1485981306.2560.11.camel@sandisk.com> References: <148597749824.11392.9598040130844203664.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: <148597749824.11392.9598040130844203664.stgit@dwillia2-desk3.amr.corp.intel.com> Accept-Language: nl-NL, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.28.1.254] Content-Type: text/plain; charset="iso-8859-1" Content-ID: MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrIIsWRmVeSWpSXmKPExsWyRobxny7jwUkRBk/fKVusvtvPZjF96gVG i5WrjzJZzJ7ezGSxsZ/DYu8tbYvLu+awWXRf38Fmsfz4PyaLPUfOMDpweUybdIrNY/Gel0we l8+Weuy+2cDm8fHpLRaPOX8OMnucWXCE3ePzJrkAjigum5TUnMyy1CJ9uwSujIuvHzMVHOOo mD33JWsDYyd7FyMnh4SAicSFmxdZuhi5OIQEljBJbFrawgThnGOUmLh3JzOEc5RR4s/v80wg LWwCRhKzJ+xhAbFFBMokTny7xQpSxCywiFni86mTYAlhgSCJp72H2SCKgiWWvNzOBGHrSTSv 7mUFsVkEVCSerVzNDGLzAg29+fIKWL2QQIzEgy2XwOKcArESZ1/cAbI5OBgFZCVaXnODhJkF xCVuPZnPBPGCgMSSPeeZIWxRiZeP/7FC2AoSn1f8Y4Oo15O4MXUKlG0l8W7TGUYIW1ti2cLX UCcISpyc+YQF4gR1iZN31jJPYJSYhWTdLCSjZiEZNQvJqFlIRi1gZF3FKFacmFycm55aYGii V5yYl5JZnK2XnJ+7iRGcEBSNdzD+2+B+iFGAg1GJh3fBpEkRQqyJZcWVuYcYJTiYlUR4GSyB QrwpiZVVqUX58UWlOanFhxilOViUxHlfH+uKEBJITyxJzU5NLUgtgskycXBKNTCGv3MRClWy 25wimGs7fRVT1bwAtjO67d/6A1gNr/XsPvel6GvP258PLas8lXNWXL55bZLexLkagimPglcI SYbpcfGde1A72+X9xf/XCkLaP9Y6MHhlPO1KTWy2zX5yO/jEzS7Lc/ddld5NTfV97Pn9ZteB PfP9thsaztnbqCdqWyK7rnBTy0YlluKMREMt5qLiRAAD/Vc0BAMAAA== X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:74.221.232.54;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(39850400002)(39860400002)(39410400002)(39840400002)(39450400003)(2980300002)(438002)(3190300001)(24454002)(377424004)(199003)(189002)(68736007)(189998001)(23756003)(5250100002)(106116001)(54906002)(50466002)(5660300001)(2270400002)(2501003)(97736004)(5001770100001)(626004)(53936002)(2950100002)(229853002)(8746002)(50986999)(81156014)(81166006)(8936002)(305945005)(106466001)(2906002)(4326007)(7736002)(76176999)(356003)(575784001)(54356999)(69596002)(8676002)(47776003)(103116003)(36756003)(6116002)(3846002)(33646002)(92566002)(2900100001)(38730400001)(86362001)(102836003)(7416002)(7099028);DIR:OUT;SFP:1101;SCL:1;SRVR:BY2PR02MB1409;H:sacsmgep14.sandisk.com;FPR:;SPF:Pass;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD025;1:TUzkW4FUPJM2PlDutgKEKx6lsFuAhNwfWZ0GeXMzyudA5Ey5Yx838a5nWtfDbVmXJo3gxe4nUUcOb/67leYkvIqEHkxkP7Z4tmqN5foNo11tzCeBv1XuIr2NpiG3BCpTnVqoL31QttItUCF3TPT83reNMmRCaHkT5n1DSgPaSP5OU9xGRJw9f24p7v0dJJO51LUcQhCnLE4H2+/KphlUra7gYM2YIZBxrxi16VGxwKQb2zx1UYdyAW35v7KPVPj6fFLI1UZG7U81sC8WI2vKyE5W8M5++JNLfqgasSgzj27sJGeTOmQrwFNaLtwAN5/bDJ4xIdEC1ocPN3P7GY4K9nzzD8aJ/aOcD5szp+RmIBFBHjsN81giEn0j5IBF3iXPmRwtFiFYTMRM5L1bN3LNbwL/P8Kb0b9BEhocEjcy4j8yT4wrfdEcB1a1n0UEORcwCYPdsjnps6FPO2BFg0omH8158wgXjtDmYcOAlmdeR0egocDv1vd8vmYCgGnbm+yBfDWJ/k6RBsuHgzDM5DA8EwjCaR5beNnvnIQKbfvmWk+eiE/ydNCXyWateFa3n9Zq5R7vXjs7BCXbr7dMI+KTgA== X-MS-Office365-Filtering-Correlation-Id: a116f9f3-2478-4ba9-125a-08d44ae1daa2 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(8251501002);SRVR:BY2PR02MB1409; X-Microsoft-Exchange-Diagnostics: 1;BY2PR02MB1409;3:I4XqM7V/jXthA1c8eLyxEJq1g9SQUxKJFQECEneC+KLZrRREvWHh8n1FHZwGfERstfCI777xgVgdd4fa610lyoQglJ1sbx23dhrbtayb7/4P2TPAoTBMuCCu4L4dtOaDLYt2vt3iuEEml78DbsMjWl5RzdZRGY4LoAtQDAujGV3C/kQkiahWp/rZffwL9w0isU2BDqNGugFKLJAr2GFXr2Sucej+WB7n2u4Lg0ENTq1rzEW8UpsRtrenU67PKmDjXGZUn95qQyBORqi+JUrmBZy/aISe3n8SFOB3PeEI7sXNbcHH0DS19MP7gVxWVIedQO1N+i4DMLOtJr2SLb7jRDxJx2uIUAYcTGj70j+2foAMrD6+bRzZu1kXDMT3lp8zjnTWC6q9hnSYZ2Naof9klw==;25:G+1BvkqCQBaLv9HZcpGv/FGYbyemC3a2ADNBHcrkGlSzSdL1u8B6SxTsbnbbw1u9dCeGL2o3Lv3EfyK1wi+tC1dh5wMz8qBI7gxayHFC847IGBg+YmzG7YTSBgVk0MZnxms+4UX3LVwgp88TpFjFeM1kO676d+wJ3nymT6CHbR6MytWisxRqVqbUH7Q5UxHYfCPQpYQpswwd7TxyBpupVNIa4MrrxcuIzGxAgu7FQoyS0JzD4EcksRCpw+LHVOOZIhOtNz1p7qsShDM9ZB+upuNcHoBSmQKJrYKOqgmcVHcU4deTOvQ/HKeB58FjnABSHoLRiFEqEOL33+zaxyaCLaJo43VJg+aZZSMcNPaiFHGkTLqeXTxN0u6MMGsXWkl1sOVT5apeiyqStOCwj3ef2a0uOdVhNPf9ZFlmZ1ECVNMDqmVoM23TksKEX7DfO7JkEEOf5X90MREnb6OLU6TY+w== X-Microsoft-Exchange-Diagnostics: 1;BY2PR02MB1409;31:GWqq0cthKBz22P2V89hagImlu9v277pP7meZ3pNR0eOkTkXLklM0wKkWRqRQJSRf341cg0M8bxt5dOihgzBH8CzHdgJgxueJmwG6j0VA+tGr160z3lUPEyLpoL4oNtCe6u2iqeKrTAitAETLJsHLVjSxhKaMk1N2KqNTbuc9fMDI7PIbTQAXU6Xlicsss/YBTMDqOk2hrP2kBuAnayRVG2hW6SvKTMZpMVayu4o+mlHtj8a5g4bxWfGHrWHqOtXfOenPELqvDSvaMoT0oXNM1w==;20:pG32VrG2KeLsHYI7JNGvZCqjxg83Hs+JLGtj2oHrcl2aAtSt6tV/AA8Tgob8WE5kmZME2/pb97WFR9k5FJ2ol02hph3dSMji+SMuwcKji6yd7GJiZLzl0mXvgMHOKAy1HLziOJ5vz4nHWqmJdHySNBfRLAT2PwBGQUShe+UtCKY5o/VsF8h1Q1S6Pn8op5TAQh59eWMWHvOe3WdUuzFcfIxo6g2/X4alWSkcMAlZHkCwERvY/S//ExGlIagWDsEoxl6XQzmYVIyh5NSDeatCYT6a1Hb19FpiReWG5NuVg/+Cy6ADp3w8Ib9uxEu69/bwsZa8yhMI8GsirroOrxagwTeyVgHwV3BAyxoyEFzDAJwry+GPOWHRQ5MYecfmsh1lvsY7udP0rWT1UgpLwy74yBJM6KYcZA/aX90UKYQh0R+tf2GJHOhsvPF7wr35+i+A8o6tKyHWF90HYdmefXDe34OYJnDnQUPSSlVlmlO2PXKWeBdXePM0B43k12tNw50/ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(13024025)(13023025)(13015025)(13017025)(13018025)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(20161123558025)(6072148);SRVR:BY2PR02MB1409;BCL:0;PCL:0;RULEID:;SRVR:BY2PR02MB1409; X-Microsoft-Exchange-Diagnostics: 1;BY2PR02MB1409;4:UexPifkXq7zHXNPDvUTRpYsqduvK0bRCxTnSJPuwkZXFnDofliTQHnWdAz00ZMuD5JCyScgnjICLdx9NEHeVLvE0EQn4YcisoPAGDAxjwoFHKPHkKtQbY7Pt3O0Tt2SWzjEcBBIQSOw0LgTtQxfYdm2CBw9rdAEEW4fY/qHdn93fZb9cr/tZ5xK2R9LHmbHildfhZhwgwmQqSuWab/wMlWUr6Hg3xA+rE9ECxW79Sztz0f2i5FvIFB98FqeDSLeYsxF/nU1DZfXKqpJE71ADvuo7XkCZsT5w1VqMuggMeBfqXmRZ26fRM5R6pdXHzd1dxQCXO+GhnELZq0Pq6hxG0k4p0FxoE+1Qt0yxzR+7CIN5MUZg+Yl6urmnhb8avBILncaCktfiWzJiZoAiFPVwGbNCsLbFrVLDcwhH/+W+qPqVLJI4YjTUeCHu04XBhJAu9tp3Y1BWOtycVx4tE79+QlqYZ/n1sMQnK24fOiedX0Y0cxUAElcDufr/sLq57zTz6IgbsAsotXK03bTieKyBXdAbt3aRhC2syLJB3HOVkIhCLVwRHiWHghUli6uMVnNDSL8vEXxsIkf4wxFDh/gCDC4Dq5PjtLM3myhtdxcLZ/dqpBDuIFFzSGNyxOOvqg4SakYue6AeiVhC/QL0XSbUC8Sgfi79kpjrI4iTfjNekUBfjQsJZx9bJ2G6QTt7K6mMQ7U99OTLSK+bfOqCqyO30A== X-Forefront-PRVS: 0205EDCD76 X-Microsoft-Exchange-Diagnostics: =?iso-8859-1?Q?1;BY2PR02MB1409;23:zWTEFxrObvMNXZaIaDskT6fdbMqXJTGk6KL3lAl?= =?iso-8859-1?Q?5b6NhZXXspVInhgUNWMtTITSELmt1zQfn93Dzs03rhSBW0BTa7UbBAAWV1?= =?iso-8859-1?Q?xwWMFa8+xkO2btF2rQhkq5pZAH5bAcWIQ37uOWUhyhTCFdJWGoWfAZxW4k?= =?iso-8859-1?Q?MGjZZ2vZAYFcYepE/bSX2pa+HKt9mDiHe+rGsC4gmAJmhPTaCNcs4Q6VRQ?= =?iso-8859-1?Q?wGFfd5U7CZoKK0MrF/ievyG35racaF/wBXzMJzHaPbaWIODpv9bYqSxAeo?= =?iso-8859-1?Q?3qmyX2krJkwA51BfqWGpaM65RRpTvwpryH58rkg7uEoumop0mgMYVx480W?= =?iso-8859-1?Q?Kb2TVeAV1jNbDh1n3mbH59Kw0A2eaxzq37MqgBLNzZZdbvw1gxHgrqlcFc?= =?iso-8859-1?Q?yEmIin7VRoE+Tmm/yIi4O6wf1jynwPKKCyc1c5telrZHtMezewuwwx14DR?= =?iso-8859-1?Q?qd2kCCIK8KP7u1NI84GOWCxgnsSNKgZhAqZfa8JLwaz/Yf6DM2jjEC6Kn7?= =?iso-8859-1?Q?JtJ/FctEiudznVkjrzmo9pM2A+wuQ7PMt/NZkM2Hes3v+U+sy5armHMX+d?= =?iso-8859-1?Q?ztGcfxxjFRYeN8uqz/GraMtOI5C7GZnJm6m+G6gTBS9KYscgj6AM6ffqYU?= =?iso-8859-1?Q?bFDxYFUYbTFFWUZICTp//bPJPAight/4srajmuuX73n0JBmaTMp1GECYyB?= =?iso-8859-1?Q?sKIZQhgBJkCgN6vKBydBZsF6QtDrp1AH2r3kTV5jgk8PATw2xWJb48xHqf?= =?iso-8859-1?Q?lNJ2/gzkVk40iKuSxIk/X2kbgtxP1Zx0VhL8OLeh2KB9PveY3mZ7HHLCqB?= =?iso-8859-1?Q?cP8/SsjCJYGdEVhexn2qQ0SubWsUxyxDkVtQECatHVKqj9h+u62HKLuP9x?= =?iso-8859-1?Q?NvwzIDYquO/7UvAjb/N+e2KUzm3TNm4EHgdVh1Ju+7M9eXJ7h2Zm5oju/r?= =?iso-8859-1?Q?2FndVEbfunfeGaPv/pCfxBF5Q0C3KGgdonKVe/Kb1039blTU1P6Ha1tpXJ?= =?iso-8859-1?Q?flg4AuTkrQGGgNiTV/1n9LoySKjutBODO9ITdr42R5UgkYfPAdv+Nx55zx?= =?iso-8859-1?Q?KShjfLfzA+2kPXT3ocn57LwWNTtBMkI6Gk7KRw4+fLdffca0Ps9W9HQNHn?= =?iso-8859-1?Q?XH6MrYB+QHK0d0pEiFrMRkahGWKsmMxuUvpf/W70PInZWsxIbSq+mAHqZY?= =?iso-8859-1?Q?D8kYz2vxoHG37aGPPksvTmoaCvzKpMdYbzdJ8CDkX1qcqup5/0zSw0N7Lf?= =?iso-8859-1?Q?j5ZQ1CkUOLMi9Z9+jAEv0e0IDmbmxm5rrN18UzNrYeKs+wgV4ISMYSsRSc?= =?iso-8859-1?Q?+OAB2GI3IDhyY55OvYejvwCbLc8WoWYaTS7AOLdO/Fj8Uw6qZflCOiV6Rm?= =?iso-8859-1?Q?R10+A55462dEh1Mz9CUVgrXlzrhD3tCkaDuXtoAsfVex1uj8pzluTcsRCN?= =?iso-8859-1?Q?rlZJV897LCFd2drrPh1FkFdg1fA8CtuJrhr3KCpyhWHWcrrBCOg+3HC5Q?= =?iso-8859-1?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR02MB1409;6:LWUXoLGYaBKAffOti6pkX/IR3ZZiq4rju7JKZnV/OQQeq0ho4bVus2mRO1pvYTobfOZ0vdzp5+cTIaZNPTjNV0fUl7Z/4Qkir15DJfjZ2Bt+Nijm6jpPjG/SqfiYD6PQ86sdoDW6ULuXjrN6egO7KgM0opTtU1gIKmZ30RsgPsNF/1QWyWIA9+rFlV9qXBVnIKvvIcg9rWoVGgCHB/k6OJN8CiQe/8k8/otDroJSZNnwRC/JVAo+Kc1+esmPM0qJbChRufF2AaYdeVp+qty6+h9eyOrWcE6Ab31u/oB/cWQ7KJKAHOxgWNwprPoyyFaQTKKgqP3kveaxchjPBLVKA/Z1TnhKEk5NTHaClmsuZZsELOgvBjwOeR/vP351wefaFxjVnyzdQ0BKkn2ykviaUYm/UDrWM+UfyeXkm4SkzjKLh06l1pz9mzufAbcyq6+q;5:DZn3UUG34o+3Naocfz0Z2NDEsmDBQqR7XpctXGZEnkiaO8jkosJ/fDc09sjfCwBWpxD1lFlkVifMdUyE6xsM8B6wJUr9vs81axBaiGIeLyGL+iBejUl/kBNyRoDg6oqbK9tYlw3ak/UDcWBIs861AA==;24:xwBpltgdM99IJnujzUCPKoMJxW1MJ4nxOuBrlMY+6csIarObU/06jgPuC+PfHw7TpVka71mugM8ZLgWs3GuFguhXsdrnQLCLaggLFK73JKs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY2PR02MB1409;7:YegWp6geKvwH3gSg9S+7r5KKnu3mqksSN5qtrroOHhMhlCGKaxhP50Djv1/TXL71gdTW+I34txr42wImlIEgQwauZnbe6syv7lE+C4QIIkB8CtAJVohYOSHBNdQW/l9rlaWiRsXVqGa++qG2ej7m9QzOls/Nbi3E7NWkZdLbmPq1JeVimb6Jg79R+enK2K6Oh1KdeozECtJv/aJQRQGgHywpCqq5KRXo/1LYD9XtaZYPrO1lE84SnRIHb5xbhGGaeC7k1vkJoCoUYDA0/OSgPEXnLbunxPhueafQXH5l5NpFgncgKgfzic5u8HhjBSGv+sXwCoClHUpZJQ6LXfulOQA+NkZGMrpyw7WOC9wkHcsgH5tSSVRd3Y3uEz/4EIG3bAQwRMdPzhQ01f9fPDtaXVUMYzdhXkDN6Z8ubp2weIT2OjYIaxKEe487R5s9gTJ6c/tXWHyW2riKGVMWVoN2kpEgPPVcg/RcyK2JLdZSY9JPA9fbJNR76GTZGKF8+3ATd0Ei/Gc3yhz3vfQinMjYADmLukuBvX8CMw0/dROFQZCo5SUm5d1YthmzXVte8ktG X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Feb 2017 20:35:25.2406 (UTC) X-MS-Exchange-CrossTenant-Id: fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d;Ip=[74.221.232.54];Helo=[sacsmgep14.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR02MB1409 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by mail.home.local id v11KZb1v030101 On Wed, 2017-02-01 at 11:32 -0800, Dan Williams wrote: > diff --git a/include/linux/genhd.h b/include/linux/genhd.h > index 76f39754e7b0..27e7e12c0c2d 100644 > --- a/include/linux/genhd.h > +++ b/include/linux/genhd.h > @@ -167,6 +167,22 @@ struct blk_integrity { > }; > > #endif /* CONFIG_BLK_DEV_INTEGRITY */ > +struct disk_devt { > + atomic_t count; > + void (*release)(struct disk_devt *disk_devt); > +}; > + > +static inline void put_disk_devt(struct disk_devt *disk_devt) > +{ > + if (disk_devt && atomic_dec_and_test(&disk_devt->count)) > + disk_devt->release(disk_devt); > +} > + > +static inline void get_disk_devt(struct disk_devt *disk_devt) > +{ > + if (disk_devt) > + atomic_inc(&disk_devt->count); > +} The header file is included directly or indirectly in a huge number of source files. Since neither get_disk_devt() nor put_disk_devt() are called from the I/O path, please move these functions from  into block/genhd.c to keep the compilation time of the kernel as short as possible. Thanks, Bart. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bart Van Assche Subject: Re: [PATCH v2] scsi, block: fix duplicate bdi name registration crashes Date: Wed, 1 Feb 2017 20:35:20 +0000 Message-ID: <1485981306.2560.11.camel@sandisk.com> References: <148597749824.11392.9598040130844203664.stgit@dwillia2-desk3.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <148597749824.11392.9598040130844203664.stgit@dwillia2-desk3.amr.corp.intel.com> Content-Language: en-US Content-ID: Sender: linux-block-owner@vger.kernel.org To: "dan.j.williams@intel.com" , "martin.petersen@oracle.com" Cc: "linux-kernel@vger.kernel.org" , "linux-block@vger.kernel.org" , "hch@lst.de" , "axboe@kernel.dk" , "linux-scsi@vger.kernel.org" , "osandov@osandov.com" , "James.Bottomley@hansenpartnership.com" , "jack@suse.cz" List-Id: linux-scsi@vger.kernel.org On Wed, 2017-02-01 at 11:32 -0800, Dan Williams wrote: > diff --git a/include/linux/genhd.h b/include/linux/genhd.h > index 76f39754e7b0..27e7e12c0c2d 100644 > --- a/include/linux/genhd.h > +++ b/include/linux/genhd.h > @@ -167,6 +167,22 @@ struct blk_integrity { > }; > =20 > #endif /* CONFIG_BLK_DEV_INTEGRITY */ > +struct disk_devt { > + atomic_t count; > + void (*release)(struct disk_devt *disk_devt); > +}; > + > +static inline void put_disk_devt(struct disk_devt *disk_devt) > +{ > + if (disk_devt && atomic_dec_and_test(&disk_devt->count)) > + disk_devt->release(disk_devt); > +} > + > +static inline void get_disk_devt(struct disk_devt *disk_devt) > +{ > + if (disk_devt) > + atomic_inc(&disk_devt->count); > +} The header file is included directly or indirectly in a huge number of source files. Since neither get_disk_devt() nor put_disk_devt() are called from the I/O path, please move these functions from=A0 into block/genhd.c to keep the compilation time of the kernel as short as possible. Thanks, Bart.=