Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753945AbcLFRuu (ORCPT ); Tue, 6 Dec 2016 12:50:50 -0500 Received: from mail-by2nam01on0064.outbound.protection.outlook.com ([104.47.34.64]:3152 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751636AbcLFRuo (ORCPT ); Tue, 6 Dec 2016 12:50:44 -0500 X-Greylist: delayed 1910 seconds by postgrey-1.27 at vger.kernel.org; Tue, 06 Dec 2016 12:50:43 EST Authentication-Results: spf=fail (sender IP is 63.163.107.21) smtp.mailfrom=wdc.com; intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=hgst.com; X-IncomingTopHeaderMarker: OriginalChecksum:;UpperCasedChecksum:;SizeAsReceived:3248;Count:18 X-AuditID: 0ac94369-9793798000000b53-a4-5846f0a61a4c From: Adam Manzanares To: , , , , , , , , CC: , , , Adam Manzanares Subject: [PATCH v7 1/4] block: Add iocontext priority to request Date: Tue, 6 Dec 2016 09:18:02 -0800 Message-ID: <1481044685-2803-2-git-send-email-adam.manzanares@hgst.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1481044685-2803-1-git-send-email-adam.manzanares@hgst.com> References: <1481044685-2803-1-git-send-email-adam.manzanares@hgst.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprLIsWRmVeSWpSXmKPExsXCddJ5ke6yD24RBrt26VncPrqDxWL13X42 i59XZrFZTJ96gdFiz6JJTBZ7b2lbHNvxiMni8q45bBbLj/9jslh/ZAOjxa6H39ktfi0/ymjx cMFmdgdej1kNvWweu3Y1snss3vOSyePy2VKPTas62Tw+Pr3F4vF+31U2j0tn21k8Np+u9vi8 SS6AK4rLJiU1J7MstUjfLoEr49zTlawFX0QqOr79Zmpg7BLsYuTkkBAwkbh57Th7FyMXh5DA UiaJ/icr2UASQgLbGSVu72CDKbrw8jw7RHw9o8ScyRldjBwcbAIGEtMvJ4L0ighcZ5To/nyK DcRhFuhmlNj8vYEVpEFYwEFi8+OnLCA2i4CKxLndi8HivALuElcfzGKFWCAncfNcJzOIzSng IXHveC8jxDJ3iTvPr4MNlRB4yyqxYPl2qGZBiZMzn4ANZRaQkDj44gUzyEVCAqoSx88LTmAU moWkahaSqgWMTKsYxXIzc4pz01MLDE31ihPzUjKLs/WS83M3MUIiLXMH490n3ocYBTgYlXh4 D5x1ixBiTSwrrsw9xCjBwawkwsv/CijEm5JYWZValB9fVJqTWnyIUZqDRUmc1+3elzAhgfTE ktTs1NSC1CKYLBMHp1QDY8xmN9VZBrd6UmPXTP8zd83rb37K8265S1jbS19tT+3fM3N6zTcF 24itk7RKZ13beu5ixKOQitk8KR4B8wzyjNbFPHaNUlzs2/OksklUayaT52xL2U2R6+R6ezWu veGJ3HtaJ+mexLOrgU5KNoxGPI7W3y51H7qSl7BmydYXF9Olu1p2GL1bosRSnJFoqMVcVJwI ANVVwNywAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrJJMWRmVeSWpSXmKPExsXCtZGTTffJJ7cIgy5biwMrbjJZrL7bz2bx 6cdLJovpUy8wWuxZNInJYu8tbYtjOx4xWVzeNYfNYvnxf0wW649sYLTY9fA7u8Wv5UcZLR4u 2MzuwOsxq6GXzePU/V0sHrt2NbJ7LN7zksnj8tlSj02rOtk8Pj69xeLxft9VNo/Np6s9Pm+S 82g/0M0UwB3FZZOSmpNZllqkb5fAlXHu6UrWgi8iFR3ffjM1MHYJdjFyckgImEhceHmevYuR i0NIYC2jxOKVP4EcDg42AQOJ6ZcTQeIiAucZJV7O+c4G4jALdDJK/O2dxAbSLSzgILH58VMW EJtFQFVixqWfTCA2r4C7xKsr+1kgNshJ3DzXyQxicwp4SNw73ssIYgsB1dx5fp1tAiP3AkaG VYxiuZk5xbnpmQWGhnrFiXkpmcXZesn5uZsYIYEZuYPx6UTzQ4xMHJxSDYw3Xmqb5gtvvbzk 1PvIf6ZP1jtNbv7TN/GKhY+ap6ynj0Cqfvtx/UM8J2ZNEVmw5Dy/368S+be/Xu02nSSrKqN7 n922IvLr+7sPV5Y2zVvWaXJnYav79+w9O1UYf+y41Tnhqf0px1cM5wOnOQrwibFOv3H1xLM/ 7/YHSxYxTbL494XT5FdJU903JZbijERDLeai4kQAU3YAI/wBAAA= MIME-Version: 1.0 Content-Type: text/plain X-IncomingHeaderCount: 18 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)(1109001)(1110001)(339900001)(3190300001)(189002)(199003)(4326007)(50226002)(8936002)(81166006)(81156014)(2201001)(76176999)(33646002)(8676002)(68736007)(47776003)(356003)(305945005)(5660300001)(38730400001)(2270400002)(50986999)(7846002)(2906002)(39450400002)(77096006)(92566002)(36756003)(39850400001)(39860400001)(39840400001)(7416002)(626004)(85426001)(69596002)(106466001)(105606002)(5003940100001)(50466002)(39410400001)(48376002)(189998001)(5001770100001)(42882006)(960300001)(97736004)(2950100002)(6666003);DIR:OUT;SFP:1101;SCL:1;SRVR:BLUPR0201MB1507;H:milsmgep15.sandisk.com;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2FFO11FD021;1:UN01gWAH/aGxu7Qlg2Om8EV/BDcTwc+okEBYDpsdWVDWBAJQrPwK8qKP6QNxACuv6tOjxgvR4K4kMbUVQzNHOFGJVt1iehZ/FjSWnFoAQ27flDp7yY6f2NcQZHXrda2Jkg9dxSythq9724eXuwNKD18AoZqMCgoNv3j2g2MyAm+nGhHSWVji5M5fZDnKXaNc8nzsNa4JZ/i8Wr+dt13HXlhpcU1t1XfFa7oNBa+dDvyW30/whcAkpax6KOrRiuLTDUXp5A+lHj6gft5fWRP+QZMw1OuGMW+Ddpa9lRByqBHIktVt6SPkipzxpprxm2Dzmfa74I5Syl3vYF1PrACuVXm4urMA3jqXzmsu1/5tr3+6WlBZFL51TQ72VaRGSx6OWtOsGmQBO7X2fgXfa/2tF3G8PxXYqRx94g86vgGn/dBpjrNmoThrfH3+7aPFekkv8XyNDiyBm7il9n4d7WLGyJlwBcmeGnCNy1Gd0zUfF1ZsAWQfbJi2p/Es58HhjyAPBEje55fHlw37PT7Z/5L1H7cmaA1bvSEW2rYl2sU21aUoN6Lhq9wuoidv/9kJrIRq1cMAoFfrQLoLG0xAg8fsBF4CgP+kd5qhZUJX/vSx0uM= X-MS-Office365-Filtering-Correlation-Id: d300311d-6953-4db6-b459-08d41dfbe6aa X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BLUPR0201MB1507; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1507;3:h9iFtitrg5OF7dHWaxXpMNonpLF5QldAPnjajy2CAig01bFOgrcj88qr9nHUUx5U4IRETEvxcUC/2TE5EwxSp/JtoOj5YjTRwtNil81npFpETrQRE7yp2uexOVb1Lo39iqLNtljwtv2K6iQAStyi4FTy6ca6bXoJ0zXqZelNjG57imO2/WWRSdpZcv9mDG2k5WEGKtNW4AqaIgUKmPsIqjRnNeJylAs93e1Tr+c4UrFV01nEKH6ol2yuPHB86pb88VDDVomnVpfs7NAzZEY8EYgzDr4O73lNgL/zguNTUBbbWVky4HIx3qxgsLSs3PKvGRErwD/LyHdUKp/x8y3v1c0n81OeDvSMn2rPhQN7R5eYjLwuSXjv1d/RM/edaf+Z X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1507;25:TyREdWxAo5xvMXYqORmtNQyFCY2I67h4gyL4e4SynVPFTmj5Snr6ku3CHgwIAeAgvWSkQJQDgcVSxdWb/Taj0OwGMJA/Ss0t3Nb+f9k2zV/GD4Bm7zhQYz2esWH5+QekuM2M9m3uhqdF6E82xgMGAOahuuyspVKcg2Nlzyy/5bRhVs3gcI1mgEN6Z9SvUNdHguJEV1Mm/3bcCcvE4ZMpvyXy+LOVX0XNnZELSl7ViER1vaDIecCDf7hXNYA/x6+LPbUy0/KV7lUPvvlZaXkAC2tngbfuUwxlx78UVvpl/PuXYDGZ+8myPQY81tEtRTdRCrXUrRoGF8529Mw1qIMGVZZ89qdgdLYwGKuIqrmbOdFt8K+eEP407VYYLV88dKJMual8zQ+iYJ24qH9bVlXyHCkponLtZWt85dB2eM8RhSvfvoNyYCLPthCh3XXmbEhQkYrI1AXOfSraS/5EGhw3UT6ypN1SLpiZKEBekFrUJjqJl1fTVa5jOY1OfOoWXvBysgYaU4StrPaHuuGb0V0HQdjczdHngw6gf8l9vgUNJUizV4KwjHCQVsZwGIBgb/Sr1kCSZQUgGk6VRjtCKR26WnIVVKSKvS/HOLlvw/vmy4/BF4Wnw/M9l4V6tZ9JTNEir6698BjHL3fX0INoqyID2hubbbi8464a4qpRnMA/c1GhbO4WldZwOkuwgOb8IKtcnOb2aNbDLgadjhB4f6SbIIFQsk0KCKbidMfjoKmcXBr2L7PIfv+kHUr5s99vixHLzAGOTVGMvQXQofeCIjpW8CPUFr8/zPWIMmkvIZ+3d4Bz46zeaR3tKLJ9dsC2PJVr X-LD-Processed: fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d,ExtAddr X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1507;31:KKIBB94CPx16UaFTLyrS27w93YDEM0xsGpogrYWFDWlaLYw1loUx8oNy9sx7Aub5kJ/87AQCroZEjyI9qOJwL2QOYAsvI2NRkhvtGGw6GBBOok21/KWEftR3FYENcDrf974keWR5O5sQgVvM9T98xT6q+krwequDk3a0aNQSbnhpWqx2dXAQcwEyEjCJOM1jKf6NIqMxkuAQv08ifHR3O2IAHC79V2AmQ/3WtB7Ne5zWHRK73XyDevwgo/UFXW/ek09CAPDCmBRSH2OKIh9n+rqsSMs/gvKuOMdgS5SFC4BH8LNNLoKLRfkBg3bv8cyb;20:I8UVKOHkU/F1sTUXt+S4lI2KdKUi1eWAzq+swet8WQrry9cX23L+NJz2WlgFHHDMAGezPGX/Dw/K255cqiWScDuXnlgRip40j4b2zNq+FsCEkCuHBN5jrlRfDVduECAdqskOBrtBNOX3VKQxEOcY7T6/ZzafgDyEP1Vsy9LaU9mWqbp4GNkahBWS4puLNYx+xKPCft6C/bZ07oeGs5y10SN2KuOxq1vWTRtcAb2uF0+CsIAD2t2L5fcUV/tTv4RjV60mKgl93+p9LfrjJG9stqtiEXrmPtIOMgbiZET5DA1Ean7FkSwmfz/JejXdHR8d/Rm3Y7TmKL4f79jUPUYZESg3TDg+xCVbAa0Fz3K+tvLFDC5F61Kg5MOAWwTnfy7BAAVpjcAFx4HkWit+V8zDFiIiuKrEJAGetd4u/O6++KDa14hwQqek1fHp5uhh778Hzdc8FdP1DpfDS8pBtvs3zkKAOIP3poYwhYz0GnaVmQMHHd2s6ytnEbFJ7Bh3EJIy X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(13016025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123562025)(20161123564025)(20161123555025)(6072148);SRVR:BLUPR0201MB1507;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0201MB1507; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1507;4:sX54NYVLL7MFkESJgKNlG4PLgV0GWzRZSSXFRB6pVNDo4LKG7p+hGg8A9vSjpNcnq0ttc0iqrFwAUIeMj0McvPcKvf0WXr/CKYTncVRgF7dL7kBuOzknfAMsFhZ/hE97wBxnhdFvMNRzKIzJCIBMvrAdBvB80JeAPDc7A8/30fPAUar910+bX+U3jxuKej4/wt7gzYhiSVP9MyYOrHLT6nDkkVdq8+6DOOBtxORnljKpZY4tZlGf3mHinslWrQSX3bYjnTncIYY0wj6k1OW9jyWf6/nPcERSx9L3Ll5/IkpNv6Djjj4nAVsmQAr45h1jK8yagSUurABy/N6R9QnniqBCNBYi7wcmUUgOYkXAXpQDvQ6aICDZjoNzeh2BXaga2UeQr5OgneMft99G1JpakX/3gbxHOtcoaUygwjk9XtxDEVhCPmSUHH/V5H1jjOo9BZJ8pKz+tvrL5UAtZMR0lEcOC125UDsaocsn5zR9Z52YPTb/o3qd32FC0VVpVR/qjSvp84+jGJ7NZG7U+6H0iOcb0NBaVjKYsOD7iol5DD9Q3KJpYPqjoFqyBTCUqHq2dseCRpSmfEI6cXUXpcpUawc/xKzgzWknOclPk3sPPpI8t1JpWa/+/VjqfEGZSBlm X-Forefront-PRVS: 01480965DA X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR0201MB1507;23:+k8nAF2YuSMKXVVzNQPZLhDgVRAMr8NBF0czNfK?= =?us-ascii?Q?zw29Op5B59hZZXz9elQDlxdQ3/yCqQ+ufm0Qmqlfz852bAtJEfRvdPiqhfUw?= =?us-ascii?Q?uLQoFua5oj3Nv3+fpwpFogWN82ZDeQQXQgtkT32P5V7eRIHB6A+OEbwlPDXQ?= =?us-ascii?Q?TPCr/tIUeUBocna2GP3dq2Mlpkbi6JKGlgc1CVI4umz9qKqfJNSoRMMv1QW+?= =?us-ascii?Q?MrA44bGbrCqhOZujEIc20HNzypP0YoGg3zS/jRVgTZDJSRYyBCZo3Q3dETPb?= =?us-ascii?Q?j16yiYsDPEPKuiA4YQHpZYgcHG1CjxlNvt2BluIDtIwZdxW/geOmCGEkVuWg?= =?us-ascii?Q?WfANH6d6R85GDFJThu80hHMlWW2gxui5KJ7es/BDEXt5NeqVR2gUybVHwB4u?= =?us-ascii?Q?GHcsZwTUh6mH9sfCh7osXLRamg1kn9F59+7RVTRGd/0OD/fjr54lZOCOFCMc?= =?us-ascii?Q?eGExbbOvUnH343JrptIHnRHQ7rlXOudb7Fgac275zMPu72mX3+wZmVO8IMkI?= =?us-ascii?Q?E2ahR6MXH2rtZGlxOKo4mqCXMYOwNYkO7jaEfR4QWZ0/To5JOmkzEPMROCC3?= =?us-ascii?Q?h6GQeQ/bS84vJCeI2Vv/Jb8OlMoWK68LW8syCXvvDxn0WwKMx8MPIVkfP6BQ?= =?us-ascii?Q?UBvIyupafrOt3IiuvsPmzBcIBpcow/kW7Z0DnBM5qGnyyggaLCo5NWYVM66g?= =?us-ascii?Q?59pLmjLU/kiopez91itDkHagnfD5RGs6B9bQ5mJ6VvL+tl67I7U7GdVkKvdc?= =?us-ascii?Q?+neCUghOhlH6HtGcIYSnvv0il6KSgqfprd38N4X3FzeGESqyAitqDmrlB5P7?= =?us-ascii?Q?8dLljzBGEiQJtBrKo8xBquCoAFUOpWV7nmuoClhjsVIbYBNC9xCnTk/sXRFT?= =?us-ascii?Q?1+g0rmvekxWDJ8Q9f2/F34UFjyN/PAk4c7LZLPC4kXs3H2Fr2eFTMM6/8paV?= =?us-ascii?Q?yFT2zJqDVa3uqjN/vW2HJcJBmHQOZxPNlXHNRF6t4/CSuVytUXbFO375FfRV?= =?us-ascii?Q?UKgSgoqGwP92eUa7tDt/9Y87PzVbTZMDad/WRKblvQ0QmZc0q2G/gpz28DRl?= =?us-ascii?Q?+Hhak4SlwLjZXrnDtBX6zIlgnP+Rqzp12Krg8kxHuGzVH0r4FRHSaIIcFtBy?= =?us-ascii?Q?WxPPZWY5b+z7wpqiwlba9cIRJN6q/rysUBhtuAJ8PL1ViMf6MdT1niR3FMPX?= =?us-ascii?Q?jkMi2XjHl6iLPkXXH33tKxii81CmluA2tfBOJ54fRj656/+15ZrPI6ubWU2o?= =?us-ascii?Q?yoN6erD6UdiGzY4e1Ez1tTdhp3MPdtaLzQSir6mgq?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1507;6:PO4qhM9gP/OJXeXOjmiJaSbSoWqJer2vZ7gVsbrqphbNzRWb5N1wTVXS48ql8QSJyWsauibo7Yfz/J8XyeiptPNR3YmM6rfDT+Y7TvyOhYRGECbU9s5iJGbVLzkj9lbRA3MNmM+iNAL3kEUjQgGqrtj1X2u/L8AzSzdVaaSowPYG/xXoIeZbLqnDcCZBWqB4LwHby+1D36ye6OM1TzBoc1g/YJht8OSXKNtvJZAG+HHKUJkh5mAq3K4+A5FsLegyUHi7jHFz9R9fBnx9go7NTSA1KZ9Sa5hDPfA1eZxD/0WA34drtj0cEJCQXckLOQSQwOTwHVldDBmpA8niPIqEuxv2lNMKVysN1lleYdhcmr2yss8zlTt+h1jZbvb7KY+yMYuJtkoIsd9QFkmss8sBFkCacYSJfKNrzZXd4ZsVbNG4qIezggbVLejYql+iPmBx7VFmGuqDDgVqG5bWO28/5g==;5:yCHXs02SAw+TWsayLvTjd4NgVd1WIk/cRjtlZMMyRHO3u89K5mXMPazeT1/R0gHjz+1eewWAKHYQvZZAZiO4ubPx09+TnmURToDx+0Wq9zyamfXMLrD3cf8hAVXeNAemVadTyumS13hUJOA4957pIQ==;24:x1X9tvsnw53fINe5Uds+mgVuV/9CK3Cvz5vPZykX5YlhWcVLhfH34+3JezidG//CgpkXzWlZDe2nFCDcSVzsIrFlrxdsCXw+kZNwMxM2AeM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1507;7:soeIQwxZGaHpTDLJU2vArPqnwIv58GcDAn8DIHmdEfJUhxOntw+UPOzUgO12oTIvLg8r8UzQqvEE9D9qxQ7x+k/oc+y1I6mZV3YMkqPuX4Ws3BjeawIuGmwsNviIAh1uHGMKJ4NpJ6xmdLBsuZxV4tm1kvomCJZ9Tnz/FkMT3AT5Z1s/8LRoTNhaCgCxUAs5RDEqg9yLw9pef6HhxiUoCjpi5XMHwckZZ7iSIiC0HuU3DEjH95J8lre8GL0EfILYKQ+0qezOZVI9AhHn4/pW/xklA0vk6KGHIeQH14EfYuL2HQjz1XnKDvdoDBYQiYbp50qaz7XFng7cOISf9dw7RHORfNQcJcnpcoc8CcskiqgTDwW29IKcz1FXjHv8jcln12CSQAEGbuIRap2fhwyNFjO5dM25wntGpmJJ03XDQ3XakSxMhvtg+KtHjsSlfgOTp7oKGlLChCaKk9REXshjHQ==;20:jsQu9ftj0/YMEbXMNX0qgCjy4qxueHpG/MjhmZ+nIcNRWQHy3mUUzHdxC0k1tUN5NlQRYsFlI9LG7msM3ajDNbbrLory0HJTUrvz4PMm2JfWc+EQve/MWX4Hes7unzkstBoqfh8dRgCshf/xhzzxAVPNXtQAvwr8lBSasqxZytvhjDyhEUqFZAdjtdRB5r4Y2QhhtJub+iOmt8U9+9sQjx+L+nhVOfqfp92fVRhCFrAthaznEM4q5iYlJgLQ1GY9 X-OriginatorOrg: sandiskcorp.onmicrosoft.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2016 17:18:30.8778 (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: BLUPR0201MB1507 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2600 Lines: 74 From: Adam Manzanares Patch adds an association between iocontext ioprio and the ioprio of a request. This is done to enable request based drivers the ability to act on priority information stored in the request. An example being ATA devices that support command priorities. If the ATA driver discovers that the device supports command priorities and the request has valid priority information indicating the request is high priority, then a high priority command can be sent to the device. This should improve tail latencies for high priority IO on any device that queues requests internally and can make use of the priority information stored in the request. The ioprio of the request is set in blk_rq_set_prio which takes the request and the ioc as arguments. If the ioc is valid in blk_rq_set_prio then the iopriority of the request is set as the iopriority of the ioc. In init_request_from_bio a check is made to see if the ioprio of the bio is valid and if so then the request prio comes from the bio. Signed-off-by: Adam Manzananares --- block/blk-core.c | 4 +++- include/linux/blkdev.h | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/block/blk-core.c b/block/blk-core.c index 6c4a425..4d1d1f9 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -1154,6 +1154,7 @@ static struct request *__get_request(struct request_list *rl, unsigned int op, blk_rq_init(q, rq); blk_rq_set_rl(rq, rl); + blk_rq_set_prio(rq, ioc); rq->cmd_flags = op; rq->rq_flags = rq_flags; @@ -1658,7 +1659,8 @@ void init_request_from_bio(struct request *req, struct bio *bio) req->errors = 0; req->__sector = bio->bi_iter.bi_sector; - req->ioprio = bio_prio(bio); + if (ioprio_valid(bio_prio(bio))) + req->ioprio = bio_prio(bio); blk_rq_bio_prep(req->q, req, bio); } diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 541fdd8..8c2a1ef 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -1050,6 +1050,20 @@ static inline unsigned int blk_rq_count_bios(struct request *rq) } /* + * blk_rq_set_prio - associate a request with prio from ioc + * @rq: request of interest + * @ioc: target iocontext + * + * Assocate request prio with ioc prio so request based drivers + * can leverage priority information. + */ +static inline void blk_rq_set_prio(struct request *rq, struct io_context *ioc) +{ + if (ioc) + rq->ioprio = ioc->ioprio; +} + +/* * Request issue related functions. */ extern struct request *blk_peek_request(struct request_queue *q); -- 2.7.4