From patchwork Thu May 25 18:43:24 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: 9748935 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 7702C60209 for ; Thu, 25 May 2017 18:44:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6D646269DA for ; Thu, 25 May 2017 18:44:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 621892836F; Thu, 25 May 2017 18:44:03 +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.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 72154269DA for ; Thu, 25 May 2017 18:44:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031005AbdEYSoB (ORCPT ); Thu, 25 May 2017 14:44:01 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:4701 "EHLO esa3.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1036479AbdEYSno (ORCPT ); Thu, 25 May 2017 14:43:44 -0400 X-IronPort-AV: E=Sophos;i="5.38,393,1491235200"; d="scan'208";a="20374221" Received: from mail-by2nam01lp0183.outbound.protection.outlook.com (HELO NAM01-BY2-obe.outbound.protection.outlook.com) ([216.32.181.183]) by ob1.hgst.iphmx.com with ESMTP; 26 May 2017 02:43:37 +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=rDABPjTmFdoh+SojQGSyKphQBI/c2ZUlSz8IHZ3edlo=; b=keUcLFaMVuMwl0bt5Wvw7ql/h2Km0P0VpzQHsCGadhMdSSQ6YCDVvHx5QFrh4TvXBecaA0G9gK+Ba+DoYegcI/Ml2LKETUi0KU4JWuVaHjZS6nvZ3gNtCP07wDht3OVwiPAdl4FFMEnlqsZR5MBILbKD1NbUa7gK7ffqhTBlxTc= Received: from MWHPR04CA0056.namprd04.prod.outlook.com (10.173.46.18) by MWHPR04MB0513.namprd04.prod.outlook.com (10.173.49.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1101.14; Thu, 25 May 2017 18:43:36 +0000 Received: from CO1NAM04FT057.eop-NAM04.prod.protection.outlook.com (2a01:111:f400:7e4d::209) by MWHPR04CA0056.outlook.office365.com (2603:10b6:300:6c::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1124.9 via Frontend Transport; Thu, 25 May 2017 18:43:35 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.225) smtp.mailfrom=sandisk.com; suse.com; dkim=none (message not signed) header.d=none;suse.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 CO1NAM04FT057.mail.protection.outlook.com (10.152.91.172) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1101.12 via Frontend Transport; Thu, 25 May 2017 18:43:35 +0000 Received: from MILHUBIP04.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 8F.2D.19026.5D527295; Thu, 25 May 2017 11:43:34 -0700 (PDT) Received: from milsmgip11.sandisk.com (10.177.9.6) by MILHUBIP04.sdcorp.global.sandisk.com (10.177.9.97) with Microsoft SMTP Server id 14.3.319.2; Thu, 25 May 2017 11:43:28 -0700 X-AuditID: 0ac94371-41ba798000004a52-a3-592725d513fa Received: from exp-402881.sdcorp.global.sandisk.com ( [10.177.8.100]) by (Symantec Messaging Gateway) with SMTP id 4F.E8.11415.0D527295; Thu, 25 May 2017 11:43:28 -0700 (PDT) From: Bart Van Assche To: Jens Axboe CC: , Christoph Hellwig , "Bart Van Assche" , Hannes Reinecke , "Omar Sandoval" , Ming Lei Subject: [PATCH 16/19] block: Document what queue type each function is intended for Date: Thu, 25 May 2017 11:43:24 -0700 Message-ID: <20170525184327.23570-17-bart.vanassche@sandisk.com> X-Mailer: git-send-email 2.12.2 In-Reply-To: <20170525184327.23570-1-bart.vanassche@sandisk.com> References: <20170525184327.23570-1-bart.vanassche@sandisk.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrJLMWRmVeSWpSXmKPExsXCddJ5ke41VfVIgyvHuC1W3+1ns1jwZi+b xcrVR5ks9t7Stjg0uZnJ4vC9qywObB4Tm9+xe1w+W+qx+2YDm8f7fVfZPNZvucri8XmTXABb FJdNSmpOZllqkb5dAlfG3ftHmAsWW1R8u3yUtYFxnn4XIyeHhICJxLF3r1i7GLk4hASWMkkc PtHABuFsY5Q4cHQeK0zVyRmnGSESmxkldq25xwiSYBMwkvj2fiYLiC0ioCDR83slWDezwBVG ibWXv7OBJIQFQiRuL/jHDGKzCKhK3HoxAczmFXCQ6F2wjwVig7zE2S07weKcQPEvUy8C9XIA bbOXOHHDEWSmhMAiVonft3tYIHoFJU7OfAJmMwtISBx88QKsV0hAXeLkkvlMExiFZiEpm4Wk bAEj0ypGsdzMnOLc9NQCQxO94sS8lMzibL3k/NxNjJAIKNzB+Pq29yFGAQ5GJR5ejodqkUKs iWXFlbmHGCU4mJVEeJUV1SOFeFMSK6tSi/Lji0pzUosPMUpzsCiJ82bJTo0QEkhPLEnNTk0t SC2CyTJxcEo1MFbMibp9Zr8cl26l55HHMn+TrkYatHIyzovNfqy3ZoKQyIH7zxP8Hh26fzAn s0k4I+laSsx71/8//qvfbcq2NKuzPyquG9j8+W1CUlVb2AGugxG+XXvSLASEBW4a3vH1fFW/ svf24fL0vi964gXyffNVyk3qZ2vMSHyWJBZ8c47ek9n9md1lSizFGYmGWsxFxYkA64c8lnwC AAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrBJMWRmVeSWpSXmKPExsXCtZEjRfeCqnqkwZb7bBar7/azWRz82cZo seDNXjaLlauPMlnsvaVtcWhyM5PF4XtXWRzYPSY2v2P3uHy21GP3zQY2j/f7rrJ5TFtznslj /ZarLB6fN8kFsEdx2aSk5mSWpRbp2yVwZdy9f4S5YLFFxbfLR1kbGOfpdzFyckgImEicnHGa sYuRi0NIYCOjxMemK0wgCTYBI4lv72eygNgiAgoSPb9XsoEUMQvcYJS4M2UqG0hCWCBE4vaC f8wgNouAqsStFxPAbF4BB4m5HbfZIDbIS5zdshMszgkU/zL1IlCcA2ibvcSJG44TGLkXMDKs YhTLzcwpzk3PLDA01CtOzEvJLM7WS87P3cQIDhvOyB2MTyeaH2Jk4uCUamDMyqr7am5SeSzE 5PXaeLXvActrvO7usDX1ZbyTmO95Oa7y6tk/nYfeWAeKHJmmVKeycs73qZo8t+t3ndYp2Jx/ Ron38RXTOdJnt7dxHZD0F1Rf4vIl51+8QG57yk/J3E3fGK49uyBvZ2gWfrypf5WT6H8L96vb JB9NzzsX9Gjrp/Un86X1Jl9WYinOSDTUYi4qTgQAy1O008sBAAA= 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)(39850400002)(39450400003)(39840400002)(39860400002)(39400400002)(39410400002)(2980300002)(438002)(199003)(189002)(9170700003)(305945005)(4326008)(189998001)(47776003)(2906002)(5003940100001)(77096006)(478600001)(54906002)(36756003)(72206003)(53936002)(50466002)(33646002)(76176999)(38730400002)(110136004)(106466001)(86362001)(5660300001)(575784001)(356003)(8936002)(2950100002)(1076002)(6916009)(50986999)(50226002)(6666003)(81166006)(8676002)(48376002); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR04MB0513; H:milsmgep14.sandisk.com; FPR:; SPF:Pass; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; CO1NAM04FT057; 1:XalzxPTXsH2Sd0RKMYiYEMbcklEAjGsbVBQ8Cnc9SYIu4brK+E3CsCUfjvqfPfLTdPMDKqQfIsdi5qkqUQvtQL83gIxX1ZHWeFcDpGM7K8lk5zabEG+iOGvw2rUyBwjLALqhOS8BI/fxqy29OsU14bRE69Kl/jGYadcri5LcI9i1478RdJbpUtLIrsuLe7TzlBFmihmu6B6Y4cbptSG2uP0zFJvdraN+cgGCqoGnaQPgChBzt13Pe6qnOfx4+jZzzbV81eF0IcEv3biaPmvYhvLqSi0QH1trocVRsoSOHfVToqUldXkMK7W1FuAwDGNlohBm7q6R4QEpE4pfHedksccWkrdzuKI+a3u37BPUVQAV/CKqkPWldS2HWI7v01iraBrrLeEVjP6SXve9tCShzQz47WNGS2mDNTMutOY51IGdFipesLIq8ywnaZ2Ou+qFAsu/iLAvpSZDWTEmE8UCe7njR00ogik1EmnwQ9i55noBGtWy6CWpDYtmltAJllXno3UlV3XOaCxwHtcgwMXdzwz8D9TmOixTSkjwQLelx9w= X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR04MB0513: X-MS-Office365-Filtering-Correlation-Id: 7ba64830-464b-4d45-d57c-08d4a39df396 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081)(201702281549075); SRVR:MWHPR04MB0513; X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0513; 3:hkCo2wXq70VlYhUSF/7aHXDWhU+U0cxaecP+kjCU0tKpf06HRTJN+39u2prTV2PEneODyaXfv4zLIA2G39Nx3ziBTB8xWN0pCapv1mu8pAYjypDSHtrdrhfIW60tv/83TpDL03UFvU4gf/DCAo3hM7zQO9RmFMY3ls751c/Z8YtNZOKFIQC4U4niJ9e2qLX8hn7R773aNQCAiEWAi4X6LSnvn9RD8nrFyF3XNCAj1/nHB36KitLga+3Ge6vOcRdlKZeuyXW0UvnW3QlRjKXwnnaB8OAoPi5ap4esMtGMETD0vl2wmA/JrS/v8BmBvUmclCl3Z9bOJF+H0oKqw2byyA6HIcS9U3tYKJV6Z3n7NyhaHz8+cHAqZeDk/VRTZOEoaBCMIflcKBWJVR90gXYM9+LxP/wgqp1Ti0l7quwK+od7mtzzqpulpO3gatWT2zIznDz9cUpfiI8BecP4r34b9xPcZ9Q077dO6sICA7sGEUcLy06B1gg1RM1mzpJ61XL5aUHaYJuPcEh4InKlRSVDIw== X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0513; 25:kFRWmHAR2kVNYsO6jwxOMa9iw+nwI4cFIyb2kIC16YLPPv+6IV7BQA6DXtQXbKi8RGmig1BBMugZM8mtktPGh43YxH89T/pwyxYXVCK5iLX9oqbv3AizQmHiMsG93VBg9wvK3FOp+6rMJLWMx5J2pc5+PinBaFF2JoVqbyjLM2vHG4OQhyhkLFE33hF9ZnRteVoEQhrhZU2rt58yh4w2dBCcKKhPy1cE2UsaHNfhTr/aU0tZgrrCez9mplOOhRRV/O28IPWULREijYPMtGzij7vFeFl+Ki6X3ToNCHECNpTOruK5a7uq2G/UKRHR4iYryCWLPB0IOfZm8MKiBJPjw4bY+J24Zg//aj3l91dPTw7X2QvcFGRbflf3SBFjQ05Gt3dvgTKe+ZdY3nOyqo9Ziti1TH1p3yddJgxhvOYTsNiPFQSyGJWMVnIYBUeg8MBFUIRO+VMFQApOjbRYJdiqP2yD3iawB16d7jxbMy8Kppc=; 31:s6uR1UodxjDKJGn8nvbBd+EY3HuNsbVRZRcqK1Dc1GT51ShVmHRB7Jt+cG7QaDeJvsSkwrblwbbJ8Eqc3iFRJrmKn6fmx2R+2OjBTVGFdukdTylMJmLk5wq5K0UE/pi58nKRRRErTxc30ukgZG43yc0a0/eTXLSAqEVNEsOmhmslz4GQ+B61w82FZUvg8Qpv5iGu9RObCB7Vn/sC3GaOm3uR00W2wDf1VrWnyo/LO2FWppKWyxkDLKysuNEY/XL+KpBNkFw6oxN+2Yh3C6g8uQ== WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0513; 20:y+1rJFIk6FPDlQ5sWiUpjniY+m886tG/htv15XdDKREwCkV0KwudewD7WysXD9LGydnitvyz+LsC0TXKOHUaglXT4LwSiotwA8AmLZGP9T8+hrHbHzsZDNAexDofY0lixLutXycyJVTGxrEgBz6qBeoG80FczlumVBR/BmYAG9x6vgkljLxnT7Q8Ay+1WAVmUhZYLU/hVwbAwoPMv6ZGKHvnxexDPTEy10GT3mOTQLoQdaaD7tprkGV11jqZTa/BCx2SqT/hZY+Nf039Phq+NiFwnMqYjFuBSVkfqiE8klk9dVBIkV4gfmm/9uZghx6j/UuG8WO62Y+2SXPn2WSWdOOuj5y5IMLDsWqpMeZlraKmRucYUIQd1dmnqZZwV05eL1LpylooPV+m99rrcotKat++ggwv9J4DtTXycNaXMkaseDTGi3K2P7QcnbxAn6NDlkNePTalll0CjCydkXftmvc8qbWuvbLkMJJFuX/OKLcwkz2yVrVi7meMHagCl9sd X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484)(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13016025)(5005006)(8121501046)(13018025)(3002001)(93006095)(93004095)(10201501046)(6055026)(6041248)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123560025)(20161123558100)(6072148); SRVR:MWHPR04MB0513; BCL:0; PCL:0; RULEID:; SRVR:MWHPR04MB0513; X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0513; 4:x8n4IHOvbLLN7+gfo9WSGzJze3PPW14KuwCtHUDWvuzguzcbWzAogI6wLdzGsfb2F8++m+XP49uKnPNn4D7y6Be6xOqQWsOY/arCfqnRYmAoCyCXsIBNmQNu2CLp/CUklHNxPcgl5zgY7Y47mQiRoET/VC+PNlhtVAgRdIqowrsreeYyNvQHa+5fg2rSEW5Y3S2ZCRsz8NI2cwgp+JMHKAttE2EW71iwsm5wDryrqAVeup5fVq7XIf8cVdqfmrJb3r0P5GxOWhu7eFQCi7KxjwN9sX8XWa6Gp8kUlFyD07ieVFxcvZlRyPze68fNJfU+OeWuOtMEZl8gm3jobYIooVlQ+3if8NSOuVuAY4vgfquRE30G3NT/thTzwqsi8cpah4hoeRIeZjH4gPYBI2eBxHaI4jdmjrI6rqL5FpuRdYWIAxFcw7amEWus94Fgv6mUVSk8jugh7AKPTl09p2g5gJl56k1l1+lSggPmxSJCyG4wJ6g3PMMYBkILVP4FmHp1yjCFbzsbMUuwCxoYjxAlUxBg374zRNyy/4jpKiZoI0u6XnIBLzJd12tw1lR+QC/RldHzw4xNenLv+OZiqraTKWrerQAVX41FjmujSsJL+D/AwlmikTxgI3ymKmRV0ZtqJPaCe6/NJFermmxrW+eRSC10KMPr9rWazz3Pd80UBV+7XEd1DMLN/xenb/hynuFxq4BlpGHfVzVcq3v+/X4I3yBW+3c1mpaJsWg59sNXhe22i+h468AYAexb/uMzquJF0/7NYE7WIc0GnGwXm+1gUysMRzd2Qvf/zo0pUmSYbbKBsXI2rPxIl//gJ4ltDjl4+lH+hgTCapIW8ipdD2hDk+40yD4SaG/7IZB2iaecafhBXJ/DQydA/GeAelDHua/SssuZuN3gIhGTNYcSm86BB/g2sG5eM4CP8HeJgUY+2c M= X-Forefront-PRVS: 0318501FAE X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR04MB0513; 23:PG32PZvGvwnzrXxJbaGmA4obN5Wm6CnKcwum433vn?= =?us-ascii?Q?XWBXUq7XHjkIgk75nxwSmr6uujHEV8cxuOSe0z15b6a8kAwk59zE4BLDSrfd?= =?us-ascii?Q?XCXeH8tFYvAUqYhEGIX8xDsgK50klo7Uo9hgURFGdzfwbur6jUqnsDK1pfeo?= =?us-ascii?Q?vAFNQWqZVMi7mT35EC3f5pvRolTXc/9o1PQHKjOcYYTphm+6D4oamUCY+3M9?= =?us-ascii?Q?utC47O8LjkL6/w9vDs0JkyReocTG4rn1He/OPAY4C3gychZ+mJm6I6UQAXet?= =?us-ascii?Q?7PMLgW/yzLx3jY/fkqXqDRiLBh54whUush81payBRsGo2mmSJgNFuedTT7Is?= =?us-ascii?Q?p6h7lLhF18b+OjbmhDnHRiYJXfUehHxlgp84hu44xDj5uHdwA4gzln3LzZeH?= =?us-ascii?Q?hFGUm8qo9bk5s1d8uHrd4MDcH57m5Pv7+CnjDpVl5KT2PiGi2I4wuJj3YaZ8?= =?us-ascii?Q?l0EP5p8LXW6108/R6dNIqA560nlqTu9AGPwhLNcoN+lI0n52pk5wMdE0H53W?= =?us-ascii?Q?0UVjejcQQnpZkmoGLhMX0kx0yizei3W5VaT3orWCtqPoNp3a9d/mua1F3gqC?= =?us-ascii?Q?v2L9iHT9tju7mYlrh2BZSPrNXqkr2pfyVmYo+BYfS2+OhLtVzRBcEFgC9zJa?= =?us-ascii?Q?pHiUV4sQgrogvvJRpYL2j5XPNYABBgHVsT4cfcjBiXonBu754MkDAEV8mPQm?= =?us-ascii?Q?27/CIozxNjuoHHstn9qhnZFG902NXt7BG70uXyFGijrw6uTmAFygAVJcaLiy?= =?us-ascii?Q?7ZwhnSRXxHDP5BKQQRGOl17T5gcXw3JnFGg+U5XcwBeuxQhMAC5LVdRKwsw2?= =?us-ascii?Q?SSfXUTKoFlqmbFiUHyJErMgg4Rf+9S+gGNFlfc/nd1VDonbR9Rj+4o2xjq7s?= =?us-ascii?Q?k1S70iXHiF5E8Zy6lKU3ppqv2XNTR1Ifa3a23jpGMAyhhtLyp+kdZjmpdq2Z?= =?us-ascii?Q?OtP2UbiHwXELkbon79enNoPBMM799ZEqNTEZei24UritjO6uEbz6yAdFCuDT?= =?us-ascii?Q?0RT3sX0Rf1m6qhZmXYSkJ1paxMcFm4VyhimfoUU/Q7305Ulz6GrtirFI5w1d?= =?us-ascii?Q?HDzOcG9Hyci0QMeIrzKNDq8sxW2VRrk5ALwgFK9Hri/NaSZxgjCHDK1pjjT2?= =?us-ascii?Q?SyRNjd8J6k=3D?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0513; 6:tXGGRR/mwZOyPvNLgvPiYEe9b1UtOrDKRxQDclybSPU7wsgWjOQJ39XnYTKTrr2AY5yFw7rvrFHMfcf2CRvbKaIVbjgjw77ojGsbGURnUkukoRhR6Ly6xbr24EupO/yEMuHg3ww9pNb6nnH0cfhIJtUrlbU7h1jEVg5novzOtvcPxq+cbFxBd/nVA4jZpYjx3lfqQ5NIQxCjvS0Q/2jUR7yLiTx2o1sENQiv+UN2va6RL2Y5iEy8G7ELS8zbmQgMSihtBbnk9/HZWlk5PhEShKaHowKoxo4AV3WAIXLYLC7m7xU5NzV5uXawdxgV2VgVSw56y3iZV/67+wCSqeX/Esn8/IifR+8qjTfDT7O1JmUN56MuNlU5zpZEJWMEO8Exm05W5LywZbkn6J52HoItMy41zuXO8T8vevSmG0HTiSn8vmRGYsNoeE/+0L6KUEH55aUzafHvHCOb2in/sve9YY7ogsoaJ0FeemJOZitQDWO8c20KsPydt+yozn+WInI6b2WNKLNLPdGDPWiTER3ojXxYsbRGqysK9YWIP/42JGU=; 5:pDlMOSB3kpdvLPjAsx3pbvUbDZrpKjZlGMERRp5J0ek2mavgR8Itdn249HVFswm8Jzg/5xqUBRaUCF8DVG3H1Jvd/4qB/BR7IlfVpd1vmA1b1qaHcF3XLM13aS75EEPLRM7Zu4Y3ZktTLnW0yM4vqdTSBblryNFSOie5Ymynkkg=; 24:EnNFmccRprk6C5YxK71aTDW/aaKX/a/Fv0DMGIc+CPVxD87/k4vdjQw5ljSPGZJRC6JV+01Mq8clfI5w86qguv75sA86NjFC/bzLWBOkC/k= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR04MB0513; 7:89WXvzDkOoO93SloMq4fZTMAmvf3EIFg9T0asCkIcIMHMvKans++GIrLQ3Dzi6Sjgs1yL1JOueDx9GzxnOKBr3L3C2KUDpkn17BaT9cqPnsIWb5PwE95MmSlgF5zZz7iX9F+o8kprPQJGYqasDT+4znLwVOa3/1IGphgkMzgWNyrq/2Y8PYoovmP03dX365QrvB0W/R+dgJr3zd35W7J/sm42y4jAvSREUaV6+PAb+joHHBRTjqRYidsmohcZzTTVrAzyJJBIlvC+Bp9i7aZyFMeN+rhmLSvCNCjSG5Kcsuojtmayrf6J1VIVAShwt1PcQd/ezx5HgnjjPHlJm4Gww==; 20:IjEETJmdzVhkH91KOw7MuxFgZeugY6b6kL2NKCQF92k+eTnHrJL2oVr4uvno61LFsjHGAPH1p6wnora5uIwGYAzaKiF9bBxczqCGLN3w0TcrfDADno5UgN2f09DfvZ9h+9d0UdtJ+wSI2wef35CJRrO3w/8HkplLvm27GWVphu0= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2017 18:43:35.4117 (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: MWHPR04MB0513 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Some functions in block/blk-core.c must only be used on blk-sq queues while others are safe to use against any queue type. Document which functions are intended for blk-sq queues and issue a warning if the blk-sq API is misused. Signed-off-by: Bart Van Assche Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Omar Sandoval Cc: Ming Lei --- block/blk-core.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/block/blk-core.c b/block/blk-core.c index 418236b68fb6..82e0dbfc593b 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -185,6 +185,7 @@ static void blk_delay_work(struct work_struct *work) void blk_delay_queue(struct request_queue *q, unsigned long msecs) { lockdep_assert_held(q->queue_lock); + WARN_ON_ONCE(q->mq_ops); if (likely(!blk_queue_dead(q))) queue_delayed_work(kblockd_workqueue, &q->delay_work, @@ -204,6 +205,7 @@ EXPORT_SYMBOL(blk_delay_queue); void blk_start_queue_async(struct request_queue *q) { lockdep_assert_held(q->queue_lock); + WARN_ON_ONCE(q->mq_ops); queue_flag_clear(QUEUE_FLAG_STOPPED, q); blk_run_queue_async(q); @@ -223,6 +225,7 @@ void blk_start_queue(struct request_queue *q) { lockdep_assert_held(q->queue_lock); WARN_ON(!irqs_disabled()); + WARN_ON_ONCE(q->mq_ops); queue_flag_clear(QUEUE_FLAG_STOPPED, q); __blk_run_queue(q); @@ -246,6 +249,7 @@ EXPORT_SYMBOL(blk_start_queue); void blk_stop_queue(struct request_queue *q) { lockdep_assert_held(q->queue_lock); + WARN_ON_ONCE(q->mq_ops); cancel_delayed_work(&q->delay_work); queue_flag_set(QUEUE_FLAG_STOPPED, q); @@ -300,6 +304,7 @@ EXPORT_SYMBOL(blk_sync_queue); inline void __blk_run_queue_uncond(struct request_queue *q) { lockdep_assert_held(q->queue_lock); + WARN_ON_ONCE(q->mq_ops); if (unlikely(blk_queue_dead(q))) return; @@ -327,6 +332,7 @@ EXPORT_SYMBOL_GPL(__blk_run_queue_uncond); void __blk_run_queue(struct request_queue *q) { lockdep_assert_held(q->queue_lock); + WARN_ON_ONCE(q->mq_ops); if (unlikely(blk_queue_stopped(q))) return; @@ -351,6 +357,7 @@ EXPORT_SYMBOL(__blk_run_queue); void blk_run_queue_async(struct request_queue *q) { lockdep_assert_held(q->queue_lock); + WARN_ON_ONCE(q->mq_ops); if (likely(!blk_queue_stopped(q) && !blk_queue_dead(q))) mod_delayed_work(kblockd_workqueue, &q->delay_work, 0); @@ -369,6 +376,8 @@ void blk_run_queue(struct request_queue *q) { unsigned long flags; + WARN_ON_ONCE(q->mq_ops); + spin_lock_irqsave(q->queue_lock, flags); __blk_run_queue(q); spin_unlock_irqrestore(q->queue_lock, flags); @@ -397,6 +406,7 @@ static void __blk_drain_queue(struct request_queue *q, bool drain_all) int i; lockdep_assert_held(q->queue_lock); + WARN_ON_ONCE(q->mq_ops); while (true) { bool drain = false; @@ -475,6 +485,8 @@ static void __blk_drain_queue(struct request_queue *q, bool drain_all) */ void blk_queue_bypass_start(struct request_queue *q) { + WARN_ON_ONCE(q->mq_ops); + spin_lock_irq(q->queue_lock); q->bypass_depth++; queue_flag_set(QUEUE_FLAG_BYPASS, q); @@ -504,6 +516,8 @@ EXPORT_SYMBOL_GPL(blk_queue_bypass_start); */ void blk_queue_bypass_end(struct request_queue *q) { + WARN_ON_ONCE(q->mq_ops); + spin_lock_irq(q->queue_lock); if (!--q->bypass_depth) queue_flag_clear(QUEUE_FLAG_BYPASS, q); @@ -898,6 +912,8 @@ static blk_qc_t blk_queue_bio(struct request_queue *q, struct bio *bio); int blk_init_allocated_queue(struct request_queue *q) { + WARN_ON_ONCE(q->mq_ops); + q->fq = blk_alloc_flush_queue(q, NUMA_NO_NODE, q->cmd_size); if (!q->fq) return -ENOMEM; @@ -1035,6 +1051,8 @@ int blk_update_nr_requests(struct request_queue *q, unsigned int nr) struct request_list *rl; int on_thresh, off_thresh; + WARN_ON_ONCE(q->mq_ops); + spin_lock_irq(q->queue_lock); q->nr_requests = nr; blk_queue_congestion_threshold(q); @@ -1273,6 +1291,7 @@ static struct request *get_request(struct request_queue *q, unsigned int op, struct request *rq; lockdep_assert_held(q->queue_lock); + WARN_ON_ONCE(q->mq_ops); rl = blk_get_rl(q, bio); /* transferred to @rq on success */ retry: @@ -1312,6 +1331,8 @@ static struct request *blk_old_get_request(struct request_queue *q, int rw, { struct request *rq; + WARN_ON_ONCE(q->mq_ops); + /* create ioc upfront */ create_io_context(gfp_mask, q->node); @@ -1353,6 +1374,7 @@ EXPORT_SYMBOL(blk_get_request); void blk_requeue_request(struct request_queue *q, struct request *rq) { lockdep_assert_held(q->queue_lock); + WARN_ON_ONCE(q->mq_ops); blk_delete_timer(rq); blk_clear_rq_complete(rq); @@ -2409,6 +2431,7 @@ struct request *blk_peek_request(struct request_queue *q) int ret; lockdep_assert_held(q->queue_lock); + WARN_ON_ONCE(q->mq_ops); while ((rq = __elv_next_request(q)) != NULL) { @@ -2530,6 +2553,7 @@ void blk_dequeue_request(struct request *rq) void blk_start_request(struct request *req) { lockdep_assert_held(req->q->queue_lock); + WARN_ON_ONCE(req->q->mq_ops); blk_dequeue_request(req); @@ -2561,6 +2585,7 @@ struct request *blk_fetch_request(struct request_queue *q) struct request *rq; lockdep_assert_held(q->queue_lock); + WARN_ON_ONCE(q->mq_ops); rq = blk_peek_request(q); if (rq) @@ -2742,6 +2767,7 @@ void blk_finish_request(struct request *req, int error) struct request_queue *q = req->q; lockdep_assert_held(req->q->queue_lock); + WARN_ON_ONCE(q->mq_ops); if (req->rq_flags & RQF_STATS) blk_stat_add(req); @@ -2796,6 +2822,8 @@ static bool blk_end_bidi_request(struct request *rq, int error, struct request_queue *q = rq->q; unsigned long flags; + WARN_ON_ONCE(q->mq_ops); + if (blk_update_bidi_request(rq, error, nr_bytes, bidi_bytes)) return true; @@ -2825,6 +2853,7 @@ static bool __blk_end_bidi_request(struct request *rq, int error, unsigned int nr_bytes, unsigned int bidi_bytes) { lockdep_assert_held(rq->q->queue_lock); + WARN_ON_ONCE(rq->q->mq_ops); if (blk_update_bidi_request(rq, error, nr_bytes, bidi_bytes)) return true; @@ -2850,6 +2879,7 @@ static bool __blk_end_bidi_request(struct request *rq, int error, **/ bool blk_end_request(struct request *rq, int error, unsigned int nr_bytes) { + WARN_ON_ONCE(rq->q->mq_ops); return blk_end_bidi_request(rq, error, nr_bytes, 0); } EXPORT_SYMBOL(blk_end_request); @@ -2891,6 +2921,7 @@ EXPORT_SYMBOL(blk_end_request_all); bool __blk_end_request(struct request *rq, int error, unsigned int nr_bytes) { lockdep_assert_held(rq->q->queue_lock); + WARN_ON_ONCE(rq->q->mq_ops); return __blk_end_bidi_request(rq, error, nr_bytes, 0); } @@ -2910,6 +2941,7 @@ void __blk_end_request_all(struct request *rq, int error) unsigned int bidi_bytes = 0; lockdep_assert_held(rq->q->queue_lock); + WARN_ON_ONCE(rq->q->mq_ops); if (unlikely(blk_bidi_rq(rq))) bidi_bytes = blk_rq_bytes(rq->next_rq);