From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758324AbcIHVNL (ORCPT ); Thu, 8 Sep 2016 17:13:11 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:42356 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757258AbcIHVMy (ORCPT ); Thu, 8 Sep 2016 17:12:54 -0400 From: Josef Bacik To: , , , , Subject: [PATCH 2/5] nbd: don't shutdown sock with irq's disabled Date: Thu, 8 Sep 2016 17:12:07 -0400 Message-ID: <1473369130-22986-3-git-send-email-jbacik@fb.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1473369130-22986-1-git-send-email-jbacik@fb.com> References: <1473369130-22986-1-git-send-email-jbacik@fb.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [2620:10d:c091:180::1:8c0f] X-ClientProxiedBy: DM5PR03CA0020.namprd03.prod.outlook.com (10.175.104.30) To DM5PR15MB1324.namprd15.prod.outlook.com (10.173.210.14) X-MS-Office365-Filtering-Correlation-Id: 7f9ffa2e-a86b-49e2-aa95-08d3d82cd55b X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1324;2:iJy/n+AQQYUVt08jAmme7IcrVA2lo9nuiRfIz5e3x9Ru0OjXKdsFljk4jGMzQwWaA8YZj571F9e9PE1qKy6t9eiXeQv7Ch8AUOfhIrsGXxDyi83wJsJg9yrH9uVLUZqWvdMUWfCiAWs5eHVZL3QNQca8pBBrxuHM41mVU3V0DRbsaAKciacFU5bZbou278XC;3:egVXYYR1UbcCc20HIReZadI1+46DUswz3/eeG2lyA3+A/kehrOOG+mokerx6s5dVvDwKWiOEMfB8BUcLMICnS9OqGPdHvjFv8GVju8zctxSbqp3p0Bx/RNZbv6+aVzx0 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM5PR15MB1324; X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1324;25:ODqzMJepiuAoZKvR/LNm9xbm1zgHQJXc18iBAaNZKYEVFASyYftqls0u/K+2Xkeo/KvU33NDB+L5xvvpggl+aoXNldoIrJ9Gm2MoDgm5T8/sitPSE75P7qNkm1ejneNVawoEmdCN/Z0GDpq3NN7upL8RFqPfY5dvyz8IN3r7a4F4DPd1bW9NJkhF1PYDuw7vXWJhOQxn5qE8ZGEPx+r/VR15IDKGkUa6hnDngg3VRTffMRTY0ba5xeiwwAXpRc0rByFUkgxopnDJ2cQkC3DFOs+E3BWfyr9JqEmfR9bvFOPFZpkFVX9hj/tHkWcXFlz0PC4Jrg0LXeuFADe/RWfxogZK9zrTyj7kcLNyHxo7NsB9y3xDCDy9kP/LJVshElB+Iq01zs7JU0INJdEuqhN6y7c27Dj7CIv9XImT4i+YlmyrvK1Qc7mB5NkGH4+3PhRZmZwAFG4CwcqGKEu1j9RX8aRwdZCZftriZvKAzUoaLhDobVruubAYO1GZelp9epqErf87auCuVBUwRHiKvw2wR+G8SXxgfPs0w8IIoQbBH0Y1axqce31+LL1uSlYnYsBM8Ggn95cXKJ79RitQd+AYHD5qdxNG0KVyu1K65JmkeXgpHgi+WRqdqx/5+/C+k5PRc6EKBVb86XZYezCRkJZfz42cbnONHnSP7fR9jNfFt5kJDJBgwpdLaFvQ7SODmfLul0Q689XyGPq6+dJ3PUpFiw==;31:kkxcoWC0KqaIqFiXCF+zI4R/T6LxoLzr0XSbHWBDvvzba0PCXTsnN2iy4RDQIBsum+l6e2pNBrlINEKgxAdwVVjt8ISD2kwS8uKj214e5r/CwcL4cAJlaz79FCmU/TUt/eLRiHlk+HvcGExRaFVSuI7dh1FKi4+kbI+bY0nYqgfYkND2UMf/IrMLsQEONtBEjlW9sQP71s4SOdVd910Vd3PHQFFxEOBWCFJGYDHvyhM= X-LD-Processed: 8ae927fe-1255-47a7-a2af-5f3a069daaa2,ExtAddr X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1324;20:eVAN+tcHBJqrhR2qgA3Ga01vG85yGNZq3So4H2RqcKrsmpEW1OVtGfgZFAQrJABm/6ty798d3SHF2nS9Zj63kvwzINQ1zL0my1w9dLMvlCimHFkB0xCGPe+J8ySGHHefVzo7p/CjRjhlRrtheDA73DOBiOnTTtL609MuE8QsVjA=;4:cPDx3aIbZWPkFeWeI4f4UK/k35/kkHdE2Y2LPbd7DEqoHc0BkveUbYGX685cecqBUsYt7edVni8tEPE7dtaW1/TUqZ5696+qdg0P8NOg87Jct+K8fcZAglfXZgpv+F5Wp13uLdnK8mJJZG3Zb6Q9FriYuDBKgHXfXDI65ewguweXMF53sLGZbGVNSN9xw38pilrbYBbfeu23KlnTvIWD9PITf2d89CHU+rSySgtrLL8M69tZoI9582eBBIsrYdJDc0MW8qM/9XelYKuikI+r4AqkrlVfLsCwiZYO8fe9bzYotKc1vq6vpJWw3kfIwsaDJmXSABoqGxUEUvXKfGoO7zIXGzD3PZojtWTTyxUfRUJ/SB0Ya4r+OUw0pqqEEzirG5xUKbvWI6aq7kmTwFtYOeNaOCQaLH50vj/omBjW+qikhuDZ4XWMOxdEnP/FikfP X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:DM5PR15MB1324;BCL:0;PCL:0;RULEID:;SRVR:DM5PR15MB1324; X-Forefront-PRVS: 00594E8DBA X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6069001)(6009001)(7916002)(189002)(45904002)(199003)(575784001)(2201001)(36756003)(68736007)(86362001)(8676002)(76176999)(106356001)(77096005)(105586002)(97736004)(7736002)(5660300001)(81156014)(5003940100001)(305945005)(5001770100001)(50466002)(48376002)(47776003)(107886002)(50226002)(76506005)(19580405001)(42186005)(6116002)(2906002)(586003)(19580395003)(229853001)(92566002)(189998001)(7846002)(50986999)(101416001)(33646002)(2950100001)(81166006)(3826002);DIR:OUT;SFP:1102;SCL:1;SRVR:DM5PR15MB1324;H:localhost;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM5PR15MB1324;23:AMW0rCACMvoxLCedTqmw8KMWztwcUHYUAZiebHzyH?= =?us-ascii?Q?1ZllMYkpNAfS7rLKFuoVQ35TF4YHvv/d1TNuq7S6ikg/WcpQ0Efvx5Te4S1H?= =?us-ascii?Q?p9du4Ym5hsBCYZsyPqocljoq8GU3YYhx2TyVrCUITH+64sC/eqzCv44/26Lp?= =?us-ascii?Q?zqKhNasjbgUXcc8r7FAP6mZNLEhxPv8hzaGloSyN3FkUNEfVtKN6O/K8+7bH?= =?us-ascii?Q?zSGikt+rwmdY68MhdQZKIxDxwdTQ4Ep4rRpW4Kac454XtMPJYiZqPtHoszL/?= =?us-ascii?Q?Hohvee2W4pND0WDycST1swkuwSs2MsCG1qOYnIMNsIe5uz2d7MkbNrxnxEXh?= =?us-ascii?Q?JNqZ4TFE/vTmqe2Sga30teE2/I9Jwf0HP/+tPPl1+e73veTgj/xrOQxIzbLe?= =?us-ascii?Q?0g+HAyqjC/4TuotoPDy30MYhO4D8x/rqSX7WvB7+wBVa/usKcVng/F9gidKD?= =?us-ascii?Q?gqYMmmVCNDcKJULd5KDFG+QtFEPHYEAo5TKzcNREyG6z9zUlxEubamx455Vs?= =?us-ascii?Q?i80Iiy/C8BCfAqSmPscguwzu7v7D+ACN26j1Mkp/1aECvNk3o8HzYGzYTrrS?= =?us-ascii?Q?jwLoPOg93poCC4CSYLcWmpjGSQZYvBRWcAt74+L7lhJcvX/vnOWsW7bJI504?= =?us-ascii?Q?wjg8jtVE0CMZ3Sc1WwvnKm6jNuq+yQD0NJ1uFkfinSwwmSVw9lYgB5m+j+9k?= =?us-ascii?Q?VGldYPeB95/KBf9tGaR32CR8TzmRjM3Zh2MHDoIFgNnieMe6ajW9q9c+nUlp?= =?us-ascii?Q?tRp7dUB+6+tH3fzADpdQCYqQn36ld2i8hEpOqEuTwpf+gACZG8vTc5ML7aWk?= =?us-ascii?Q?cZdsYjiMYz2RnnUoPPX/kOBxrOkqERtS2OI6IV6hOJULKCAN7r2RccvvLUlZ?= =?us-ascii?Q?8WwqK/yXVialBmY0fPpzRfcXdgIJfkt9obeokIci0PzBhVd7eoDHvXLhqhJv?= =?us-ascii?Q?AT0f9o8c0JbaakzAjhnOPVaHHrJOtCHUiaHMjft0dTO3jUIw+PSznyqv/XoW?= =?us-ascii?Q?PGudLfv+D/UxwoxGD4jraekrmIkdxB1wqtZbDOfZgT/AzGcphBByQ5r7ZJNr?= =?us-ascii?Q?n+oAydy6Rw1wC8piXZJ7niad+P+iXOtBr6tQkGZxuIFnmly5sfpPtuVepcri?= =?us-ascii?Q?xYm6tZoRDSF+Xee5lzXctD2A0OHNmWDZ7m9hMpjymRrH0d0i+z67/CUk7Whk?= =?us-ascii?Q?lioo3jyNWm48oM=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1324;6:+33vWbfnVbGJUGUvhmvHgBbYDV3BUtZryjTDgDzWhYJeG4mWTyZJMix3CcajES/LTx3He+/oLqtzXZvMMv4xNMO2kYWeePqVlpEyV0/Bf6IaN9NhHj0CDN9f2HYOddFv7padjQMzHiMHdyiAx4hOx8NlkDSi+pUqnK5oFyK32wdFZXXqFGpj2t0B3oFCAGyq+mQ11Vho0KhCfuu74LLw7qFLYokZ6uZ+jUdN0Ly7NgEzbbCuhF9wG3XXvR6m8dfcznI5mcn33KmsyS/XBHoTUwugx+oEPuHg/nbGrye366U=;5:m+z2WNELiF+MRwz8Ftc0Pfo2p4thsWwbD7pvPXnrcoZ0/g8G8oqP7VQKFDK/HBozNMR5QLCizj8UXlagMQLJo3RE3ohpcwGxXI845oANPzzkkBhOm287pVx15+oj5XEtK2vCMY/Ulbj8LwZvCjBWMg==;24:iB/XVEb0rkWQyrXiy1Yr56l7NDu2Vl/MEOQwXdNLxWUvOpIlULfr4QBf9Nr0fxE15QJgvWCvZk2dshgXsSwzTr5VpO+EkGqnlKlCexL/WVY=;7:oRyq1LsI28TZlmgQgeJwzP+/iQopwZTej3D5COm8/Ip7NRdgyjqZkb2KkT++X47NCAQEqc6tbCQexzJjtQd93bZ86Xt/OV3Rvd6H9hf2WSsLe+M7LHBlDv/zWBhrpVJOFShdJy+zLCyQeKPNl1eV9vs9KA9/K85Tyh/d0tDXeqBH5ANZuG9Z6hJb3Fr0/G13TWad0AavaOvJJ+uVG2F2pKJg+qJGyQCo7e8XoYbhV/QoJhHiqegiNZWcCLjWWaFJ SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR15MB1324;20:LzpVULmUu9XP4fG4Qo+y7XFm5D6wroiE+MoyKhkHRv1VPIWp1VllgfOqjyaLMb6iWKqzKA9FTJ/KvpsLwv8Ne0enyKrWlNaxcmyO8xVpiRmiouF/Z/7t/HiPwA+Ozb+5Wq/gSIHdFbJhhOV9SRJUCMCbgXIHMIA0mpHkHlWWixY= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2016 21:12:25.6074 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR15MB1324 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-09-08_10:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We hit a warning when shutting down the nbd connection because we have irq's disabled. We don't really need to do the shutdown under the lock, just clear the nbd->sock. So do the shutdown outside of the irq. This gets rid of the warning. Signed-off-by: Josef Bacik --- drivers/block/nbd.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 15e7c67..4b7d0f3 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -161,6 +161,8 @@ static void nbd_end_request(struct nbd_cmd *cmd) */ static void sock_shutdown(struct nbd_device *nbd) { + struct socket *sock; + spin_lock_irq(&nbd->sock_lock); if (!nbd->sock) { @@ -168,18 +170,21 @@ static void sock_shutdown(struct nbd_device *nbd) return; } + sock = nbd->sock; dev_warn(disk_to_dev(nbd->disk), "shutting down socket\n"); - kernel_sock_shutdown(nbd->sock, SHUT_RDWR); - sockfd_put(nbd->sock); nbd->sock = NULL; spin_unlock_irq(&nbd->sock_lock); + kernel_sock_shutdown(sock, SHUT_RDWR); + sockfd_put(sock); + del_timer(&nbd->timeout_timer); } static void nbd_xmit_timeout(unsigned long arg) { struct nbd_device *nbd = (struct nbd_device *)arg; + struct socket *sock = NULL; unsigned long flags; if (!atomic_read(&nbd->outstanding_cmds)) @@ -189,10 +194,16 @@ static void nbd_xmit_timeout(unsigned long arg) nbd->timedout = true; - if (nbd->sock) - kernel_sock_shutdown(nbd->sock, SHUT_RDWR); + if (nbd->sock) { + sock = nbd->sock; + get_file(sock->file); + } spin_unlock_irqrestore(&nbd->sock_lock, flags); + if (sock) { + kernel_sock_shutdown(sock, SHUT_RDWR); + sockfd_put(sock); + } dev_err(nbd_to_dev(nbd), "Connection timed out, shutting down connection\n"); } -- 2.8.0.rc2