From patchwork Fri Mar 3 14:46:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Bacik X-Patchwork-Id: 9602971 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 7A897600CB for ; Fri, 3 Mar 2017 14:46:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6C51826530 for ; Fri, 3 Mar 2017 14:46:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 60F1628630; Fri, 3 Mar 2017 14:46:56 +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.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID 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 8EF4426530 for ; Fri, 3 Mar 2017 14:46:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751686AbdCCOqz (ORCPT ); Fri, 3 Mar 2017 09:46:55 -0500 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:54996 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751310AbdCCOqx (ORCPT ); Fri, 3 Mar 2017 09:46:53 -0500 Received: from pps.filterd (m0089730.ppops.net [127.0.0.1]) by m0089730.ppops.net (8.16.0.20/8.16.0.20) with SMTP id v23EXrse006986; Fri, 3 Mar 2017 06:46:50 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : subject : date : message-id : mime-version : content-type; s=facebook; bh=xUcuAYX73EmB4u4k6/WySw1yuu5YzON/22oyVlCJk9w=; b=L5Oi9qnx1WGC8vWQAbzjQjfi41AkxF34nzvtr5/zQBMsjALiVDAZhI3HWxnKLJ020L+3 KyklmOQV5zMIIHr9W97sz6JbpipbhnVYT2sW+LZT2Cifowb5Ef3No4YgeTE9BIIFXhtu 4kNWo5Xj6T9F19+BetD+iHISj4RvkSEUuO4= Received: from maileast.thefacebook.com ([199.201.65.23]) by m0089730.ppops.net with ESMTP id 28y1p79u47-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Fri, 03 Mar 2017 06:46:50 -0800 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (192.168.183.28) by o365-in.thefacebook.com (192.168.177.25) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 3 Mar 2017 09:46:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=xUcuAYX73EmB4u4k6/WySw1yuu5YzON/22oyVlCJk9w=; b=JWyIGc3bNVn3n3pGknn0vvJsu+OHHDRVj9V9xNJy63VOfpHRoAanh47knJRtLeqaq0VfY3C9OV5pyy7rY6w1Dm8yW5JUAYVG1ncB2xrhlvghosya5Sa6+1o0wSz2VgaTy5iH8lZnLfFdoIjzR6QsWgMWRJdEOSj8/quDp/aiGwk= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=fb.com; Received: from localhost (2620:10d:c091:180::1:4550) by BN6PR15MB1905.namprd15.prod.outlook.com (10.174.239.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Fri, 3 Mar 2017 14:46:48 +0000 From: Josef Bacik To: , , Subject: [PATCH] xfs: clear XBF_ASYNC if we attach an iodone callback Date: Fri, 3 Mar 2017 09:46:44 -0500 Message-ID: <1488552404-21379-1-git-send-email-jbacik@fb.com> X-Mailer: git-send-email 2.5.5 MIME-Version: 1.0 X-Originating-IP: [2620:10d:c091:180::1:4550] X-ClientProxiedBy: CY4PR13CA0025.namprd13.prod.outlook.com (10.173.156.139) To BN6PR15MB1905.namprd15.prod.outlook.com (10.174.239.141) X-MS-Office365-Filtering-Correlation-Id: 13653c2b-3071-4f7a-170f-08d462441f19 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BN6PR15MB1905; X-Microsoft-Exchange-Diagnostics: 1; BN6PR15MB1905; 3:+tBnFi13nyBLYu4EZuh3KSHTYvmf+nIr9r9ggbujtUmgCBQHUmrDK6X/8saooM0Nfjfsl2jdkSrbSsVKqfNkwl8I0myj1ZFlUwNzo7DDM9FS7QcT7K8HdDByJJa0zIUcFBXoUMosQdWrUE5NLXI0NUVUlZibrX/U2DBJ7FKJgwIYuH38cOJ7ZNC+2Zt2nZT/IHSIX1oWbent7byAMta8HwArfQ2YhX5RYfEU2OKJrmgAPoGq6MJzm3lyoUgIRGDK0IMnVDvU9f+rFANWMfsdjA==; 25:tm78/nV1+RzDUgjwQrLDPLQxcrCtENxw4+/JnB5zZLEIoBN1k5MK3IkE/IB4eHrQAywQ884UcA8a4v0VDA1n27844qTJ6KeZycuvGPJYKc5oTwBtKxaqiD4rpFDnUn5WJUGXVIjCbMyABtZZm0euRYXIusR0oic77UEG7MMhlC2mnmg3uKLv4brtTE9eLsKJDgsjIwLyOOMMEu8pXbsq9xx+Xssn5qLPajnQo+TGEESTxpO/TH4dLfVV8JKRGHLDNOMxN+wRv9L6UfLroYMmatl7O/DV5lWXx681316pmQnr8VB7ey9uqkx7e2htO9J63uBu6iqX46nEjwKn6IWlftB4dMSOyDCQRFAtcN4DXr+u1jYYobUuwmcXMYoJsHIYxKv0U0Ja/QUP18gceThdJxgZKA65XeOnHer3ifze15jFu5pnRJZ3DOsv9sH4Bxh70zIOCmCqM6Azi6YXNgNk5Q== X-Microsoft-Exchange-Diagnostics: 1; BN6PR15MB1905; 31:IO+5fGqpDQ6k/sYDPsT46mn6zET+MzhGJehaSZ3eTyPmGMtXIsqqFqwiHnlgLzPOPnKV56AZHVvO4MQyIgEvHH2UgRPztdPG7nHr5SjhQ1YlzUTObihmyRs5YIQ2U4rmq2iaq7pS5E3u9QMaA5Hrj+lvjA+C0ivtiJWBoZwy0k3nEjPA1uc/d5hgtOu8rRMafAxGYoGRGzeFWrk5xI/iKjpeV0rlejd9G250Fb8Dgak=; 20:fKAbX5OSzOD8j+bm9dzyfogIY68t9j69b+YyRozNAhuLFyfvEFI6JNLjLkb+zRxcju3geK1rV3kf+zmPu0eIpioUMdwt5PewiddKevhO8mJryuZEKnc+bkkMxIbuZ1PtJ/+Iq73ZZXz5AoaFzlDnIpkacYMSCK56q9Uy2bIco7H4Hkgih7b20V+f1txLX/rBJvJA8HY7hgfJFPhICNvhKl1cv66+9UIgxgk7AHAGSbkr4IIBFf68nXiipaaTtc7bGtUOjZQfno1dKuUpgqg9lQtASzQcWH4RWZabcfTyt3fgyHX5dTkONr+Njr6iB/qZSO7TDDEiiBBMGC17ufuqrV5alF2gneVQpr6xNcc2jYxzgIDxiW6Hu5uxDBHZnELMr+FeoXKPk5NzckLTizuw99Wimo1FD4RZ1w9OKlO2Ld9SBmCiPKTaUWVHkBO4RkikzDTfHRqkrjcc0d3gjU8lZTHmrvPEExwclq/94WR+fvOo5Q4JwCLDtQBZQfQXgFZO X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123560025)(20161123562025)(20161123564025)(20161123555025)(20161123558025)(6072148); SRVR:BN6PR15MB1905; BCL:0; PCL:0; RULEID:; SRVR:BN6PR15MB1905; X-Microsoft-Exchange-Diagnostics: 1; BN6PR15MB1905; 4:NbqWbjUbVNm2tzl0znNi3WJJ+yu+xlqLbM9daqYA27dR/6Y/ntsB1dhEAYbyzGG5UOsA54UoZNByaPRnmErXlPlAW3pwxvupdh3DZP2gUaDyPTFRC0I96EkjE7fqQeaIGFHWF77pHSeq89KsLOG6q+KTMQGtSZDTHpmyxoO1qhakIvSa2PUpGPRdCPr4ddI6cZ2qTxfUpc2xGqEETXwLbjkC9MWzL2RTFPwe4MuRk8JsAYITjKjy6AsvEy2zaOcbTGO+2VmYs0xruE0hpuEq5IrLdYdpbo/U0am8Gw9gIlB15JLpn+iuRFCrU1N9kzgvkBa6nIZqaqHz2DrFBu3NY6FAuyUjNTNSn3SK4LhSA21uT2BMloc25wZr132u2L7zFmFcZ+R5+mhWC1XVeAJEhG5e21l8wBTB7a3Co8o+r9M57gST3JH2L7D8sUS9SJnPdbg3LK1uobKIhG/V7kTCfYozTl6q4QVxNqrD8Fj84DquCXAEtv9akpojOU84Lt09CjkixzbaFvI0wk5mKSIcRvehA1kZtqL5mE4oguaUvtygHmtnPU26JH0jxTLNnih6dPz6QUDueII0UYYysNGlJKExvfCi9dIi7cr1nDuC4Z46Tfgh2BHj+XIv2nTDQw7O92qS1GNeJi10engYyB/9Og== X-Forefront-PRVS: 0235CBE7D0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6069001)(6009001)(7916002)(39450400003)(25786008)(6496005)(76506005)(305945005)(53936002)(6116002)(42186005)(7736002)(38730400002)(6486002)(50986999)(47776003)(189998001)(5660300001)(2201001)(92566002)(86362001)(6636002)(5003940100001)(5890100001)(2906002)(81166006)(50226002)(6666003)(8676002)(50466002)(48376002)(36756003)(33646002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR15MB1905; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN6PR15MB1905; 23:7kxTWfnOVT/pL6FYJGo6x2r6IPtHwan6fNHDgsDPIfTUneudTAVC6VM4rnsmo0Wbnknx2vVq5AR32+F54GxWUxhVgGN4+tOZo0ObS9w5L90XABbNMW+Hs9poh2JkDT/BNOuOdNH+wxqDH4BWqIeFQBfg7W4zZKU3vRGLSWC8mhFAyntg2tSWxfHW42UGv9Y2hw/5sGYcVdZgLyQAavBMOs26SslXv2Hi+COV4pVV9N72jCPJXTxtrxkdswDQMSE36R3QqbrGumYYm8TK9eM36U/dyispwhb+ONeHkGe3LsFcWIXPWOFEPhX+wC2ExWAaiEHO3Xrib0MDP3uRFvZv/DHqx7RHPAAteXSnOFFlVKVs9pWjHpErc+D/N8EP++nXmvQwcjbf8exYDPfdMfK5XsEw8UNcaJXL8MlDtplbxAvU6GbKdKgnnFIFpNOZGKzkgqWWJz1E5NGyCCyd6xnGI4OO40uEThyJl5MHFsyjiN9k9C/c81k/f8Q3K7kBf6NVq3YGXZ59hqYtIfxsV8IcAnHihqH4LMiYrROLdy+4eAjMWD5YNUwMzWzK1IvSejlYDQDjzZHSEbsOkoFzZT6JH3Wi/0E1gO/4PDiACt3TzWGtk2MrA0DNmB/1KZjUzIMuE6thXaYLiGo3aZNeyybQjetjYqlOJbm9ARtAkPHxiB8UAz2cc36D0CmL3C7CyONIGQaKx7nJXYKly9ImZGWkAb7hKLpRpvjuWckPpIZN7RI7oe0ivi/rH4rceU+ofs7DN9HEHN4uBhxHGrb/U4rkb3mQ2pXIVYPj3zbMpWsD0OyZnZcmVMyiStpud9B12w4Vz/vWC+G0CT5lHLuSAPGMkDRy7zY3pW7Bj1nwNsPJNdIBOyhTy6C1ccjiG+69otHL X-Microsoft-Exchange-Diagnostics: 1; BN6PR15MB1905; 6:bet/SX0PoZWvzd7s+HiUfeDd9/jvAzcj5Io2gwbwxA+i6sjKEwKBy39g/u23Qz48OEWk7gu4akv2Qy2v0UhKm63xG3nTg63iq5orrpSPlr9vTylB4Ws6iCE6tj17nKbYwz3B9fOgYM9gKgBRHqPOonSIXvtJSyf22bqvsMUUdS9vDyzLYWq/ES/v9VH1a3yZS4oU1V4v12nLTP6jH52Il8/HDSNr0oKER2ldK9kksutXC3JAiRK2UWfDPaHix7yGRWJh0mT5Kch6mgKMF464mP+4va864uRpCPzVbZYNyVhMm9NAk9eYe/WFzO1jSk5lu7SLpUtWYBOzUUyF5LxAeYPabrnKVLVnnrgWOR06g7aGbxk7Qmcy2HPU4YeQDjJXHzSTUzeGUgbaZu31usVu0w==; 5:v9waOgz51aE8Wo/okMBI9134OFpYN5h5UVI20RowoYhZoCQ0s6f125pdyA2n4YN00lh+3R3ig98WhniB86uTEQ4/DpqM/Rhpu8+4rRNc0JtF45TJj95Ru4NT3LsgPGKghBhdnO0VHmrlb36w1CZCh/PmPrsbiojSdGNWA3n6Qd8=; 24:cfSBpY8SHCEgqjr6d+PbdHVL0yT8YImwkNhEDNgA2i7lg50MWs5m9SriouHqCEfqXlSeiUAzX7GOHZLbcrR35Bz0D+DV0/eui54TAGsWo+0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR15MB1905; 7:ZeLV+3MHz4IxOUjwL4MMHiMMFdTaxUmuP66ug/rDXvtWbBBj0dNTD9NyVGQhAmUD8bC/hVfS+DEkmvzz+eAfcQPUe3/WWzMvipohfWaHMJZojIFzZRp4YQu0m45sgkSI7eTtEW+QMV9Qo1VbkM7BzFE78KQHjy7H+LD7N6NR9T9J0WwM2FPgeJtjHNrEGslUtcXn3t4SjS0SXWnYpxIFYmV/oGf9+Mg0GRQzW27Gix+YeeJc+49vM0rNoJ4WKgd7Cih3nUdihXgkEpdhA8q0BdDBm81ms/BxF5t6NwAf/y4cH+iMBv61BVfN+wP8MfD09lAFBsDUE+vaILYDtxVzmQ==; 20:8wm5eL/1j538jMpPda8XHkwBRyQ8v2+yBV98js883px6uYIRUuwCI9kik222FTrrKiQKCzET4OIn0YzsLS5XAMajPgk/Ew9zLXyfqQCpSUGwViccF2qN0NfQNqyrdqBjRsieb/yj2RypMBwTR7wIKHkLr3BXmfhIJT6yUKcBnhI= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2017 14:46:48.1368 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR15MB1905 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-03-03_12:, , signatures=0 Sender: linux-xfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-xfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP While testing nbd disconnects I kept hitting the following hang Call Trace: schedule+0x35/0x80 xfs_ail_push_all_sync+0xa3/0xe0 ? prepare_to_wait_event+0x100/0x100 xfs_unmountfs+0x57/0x190 xfs_fs_put_super+0x32/0x90 generic_shutdown_super+0x6f/0xf0 kill_block_super+0x27/0x70 deactivate_locked_super+0x3e/0x70 deactivate_super+0x46/0x60 cleanup_mnt+0x3f/0x80 __cleanup_mnt+0x12/0x20 task_work_run+0x86/0xb0 exit_to_usermode_loop+0x6d/0x96 do_syscall_64+0x8b/0xa0 entry_SYSCALL64_slow_path+0x25/0x25 After some digging around I found that there was a log item on the ail with a callback of xfs_iflush_done. A printk confirmed that at the call to xfs_buf_attach_iodone in xfs_iflush_int had XBF_ASYNC already set, which means on error we do not call xfs_buf_do_callbacks, which leaves the log item on the ail list which causes us to hang on unmount. I assume the block has XBF_ASYNC set because we did a readahead on it, so it doesn't really need to have XBF_ASYNC set at this point as we do actually care about what happens to the buffer once IO is complete. With this patch my hang no longer happens. Signed-off-by: Josef Bacik --- fs/xfs/xfs_buf_item.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 2975cb2..24fcb67 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -1016,6 +1016,11 @@ xfs_buf_attach_iodone( ASSERT(bp->b_iodone == NULL || bp->b_iodone == xfs_buf_iodone_callbacks); + /* + * Somebody now cares about the fate of this buffer, clear XBF_ASYNC so + * that the iodone callback actually gets called. + */ + bp->b_flags &= ~XBF_ASYNC; bp->b_iodone = xfs_buf_iodone_callbacks; }