From patchwork Tue Dec 25 05:33:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Theodore Ts'o X-Patchwork-Id: 1018346 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-ext4-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=mit.edu Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=mit.edu header.i=@mit.edu header.b="Ak1jQ69l"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43P4XF5hvXz9sCr for ; Tue, 25 Dec 2018 16:33:49 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725879AbeLYFdm (ORCPT ); Tue, 25 Dec 2018 00:33:42 -0500 Received: from mail-eopbgr780131.outbound.protection.outlook.com ([40.107.78.131]:31200 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725791AbeLYFdm (ORCPT ); Tue, 25 Dec 2018 00:33:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UbzfqVr6ZKsINHjFnRnOLgMpMR2XTj9IF5f+CUkql6o=; b=Ak1jQ69lOXH7FkwAA0e/MnBPeCHgmPRaxzvG9T/3wnvDAPhpHF3NFlBgYeP7d3qBtL4yiFKcWfWAOtqqcWIuaLra6CYfsIiQ100H93YIyEcVQeqzhBMGfzS3E3RsiG45FZHSv/W7luAGs8UHYIpWuBekOnhYsYX3XB3zohutSEo= Received: from BYAPR01CA0004.prod.exchangelabs.com (2603:10b6:a02:80::17) by CY4PR01MB2390.prod.exchangelabs.com (2603:10b6:903:74::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1446.23; Tue, 25 Dec 2018 05:33:38 +0000 Received: from BY2NAM03FT062.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e4a::201) by BYAPR01CA0004.outlook.office365.com (2603:10b6:a02:80::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1446.19 via Frontend Transport; Tue, 25 Dec 2018 05:33:37 +0000 Authentication-Results: spf=pass (sender IP is 18.9.28.11) smtp.mailfrom=mit.edu; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=mit.edu; Received-SPF: Pass (protection.outlook.com: domain of mit.edu designates 18.9.28.11 as permitted sender) receiver=protection.outlook.com; client-ip=18.9.28.11; helo=outgoing.mit.edu; Received: from outgoing.mit.edu (18.9.28.11) by BY2NAM03FT062.mail.protection.outlook.com (10.152.85.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1446.11 via Frontend Transport; Tue, 25 Dec 2018 05:33:37 +0000 Received: from callcc.thunk.org ([107.181.182.234]) (authenticated bits=0) (User authenticated as tytso@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id wBP5XXjQ017071 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 25 Dec 2018 00:33:34 -0500 Received: by callcc.thunk.org (Postfix, from userid 15806) id 8A9AC7A4904; Tue, 25 Dec 2018 00:33:32 -0500 (EST) From: Theodore Ts'o To: Ext4 Developers List CC: Theodore Ts'o , Subject: [PATCH] ext4: make sure enough credits are reserved for dioread_nolock writes Date: Tue, 25 Dec 2018 00:33:26 -0500 Message-ID: <20181225053326.7012-1-tytso@mit.edu> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:18.9.28.11; IPV:CAL; SCL:-1; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(39860400002)(396003)(346002)(136003)(376002)(2980300002)(189003)(199004)(51234002)(2906002)(551934003)(36756003)(106002)(50466002)(48376002)(6916009)(8676002)(5660300001)(54906003)(106466001)(478600001)(14444005)(103686004)(2616005)(336012)(26826003)(75432002)(126002)(47776003)(2870700001)(36906005)(786003)(316002)(52956003)(246002)(6266002)(6666004)(4326008)(42186006)(88552002)(90966002)(1076003)(50226002)(356004)(476003)(186003)(486006)(51416003)(8936002)(26005)(86362001)(305945005); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR01MB2390; H:outgoing.mit.edu; FPR:; SPF:Pass; LANG:en; PTR:outgoing-auth-1.mit.edu; MX:1; A:1; X-Microsoft-Exchange-Diagnostics: 1; BY2NAM03FT062; 1:u7zH29koFkud4QpOgfPhLbEUoDmQpytrtzCQivu1own+evmy4k5JniSfn4qAaLXK9Yd12WuBYO8Ey9qk0/vFqhAuWVAF1/mlYCTvCrj5tzK5WXL/S9cNvnbo+4JJ8hMy X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 56e89cdf-7107-4b30-f77d-08d66a2a854f X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4608076)(2017052603328)(7153060); SRVR:CY4PR01MB2390; X-Microsoft-Exchange-Diagnostics: 1; CY4PR01MB2390; 3:eOy78PsgBJ43ewSM0/vtMdRbQEFGxkcbdSf68wehKNNV/oaL81t4fBHZcv4zgJllJJyZzYBT663lkDVjHwUJZc3GFk8lCv13TBMBjEAf6Jp+mN9zJc30AYnQrsgBAhdupTBpa0Zt81D47lv9SIM+yFNUR8Xony6hkPCPKihJFjyAPENR3W5D+oidNLOZ56aGcasIBm+oKfCHkZwzKNdGExx9wqN2SEVFeM+8+tytwrjP8L6WqMmzXndUJc6NEd5AZdtMtlAXat1omTQybxLMoDEsrhlsffhsFDAVfjknBQ2VmNE8SkzqRlAN6IeUn/jEa75hXx7ra7gP+V0SdbDVBg==; 25:s85udkegySLq3eJDr8CGLCCUNYXxYdStUAUI5PfRRXBA9PEQvJCdUYCfdITbFUyW8GU3YPQILBHDAOztq1Ck9TlxCcIdJsrFNMuCr/LgGjmuwrLX2JWXFWYfLhE9gc9ytkZB9DD9x7Jc/ag2oo74OWqXmFgywkx5TcQYcLFqmrb0q9z+Dum4HPp14cvJPhbZSRQxqBhEPrVubluSqqc246TjPxmv3BpYCxBwbk3uZl745CKRManZk5ZMZEL9yHWWxnja11Whs4UeNSEJ7B0hCHsTvRydofOgFZ0gZcuxy3vjSALHtjyRovYgibOi5X1GCjZrk7BjRNcxRPQ+Ri1EpA==; 31:ikxh8s1nH8wC7SHWXyqAsj5kmj4W4WJgDRbIxpo83EC1lBCTpHbthw6Zck5HHZhb2FwZJhwlz6xM4ddW8uH1PLNJ4QmCcDwwm3e4HY5OZUDuvAlve53uhwcexjTyhotsHORpjDKENvuZh65KGbUc8k8lnXfY46dHBbM4YEqQeYB1ePx6TaRzVM9aldlm+vLP6Qnqzb6D89Wq7TOd/k5+pSPOsXlW/IMAuAp/88TCMmg= X-MS-TrafficTypeDiagnostic: CY4PR01MB2390: X-Microsoft-Exchange-Diagnostics: 1; CY4PR01MB2390; 20:SJNbokJZsB5bbIbiRwHbbyFttODXPYGI6F3sBkTDfei3rO+aquc8YZPLxMJTeDoOORWCQ+MAgn7dlpN2WvLPnweTOAefLdX74CyKrGOAcxw9WVZ8L5Csn5wGhMBGQe2cZ03LaoJrmn740xag6NOYRt1RLjyNMJukSHD16jT9AkJrvT4A+N03sDgNsQRh8zqRzZnRIkA4G99GSSkoclnNN5FOx40mihCPazvdc4PTc/lanaLVzDr4nOIQRw829UBs+Fan5dv7hROt/Pmd5lxISIrPvrCJa8DiXIe7JhHT09Ysb4XpOMOzBeNQg5qxiOSFWSxIyTmDwaoRwR8HFSuUXwze7DbKGLCoMspj3EqAZK0V7wxEKq6vYx3SRNrhqV82dNjBeBybxVF7rZ6XU4UUoRtrp43k5QmQUIhryz5PjCsRN8FZ6STrpygbpbT5j3iC7FnegDZq8ZroHV2W9jqObwo1RiqRWnimPnyUUeQ4yL+760LfgNhNPPZoQ22uUbZc; 4:kS7chSMgmkLs7d+OGqi0opm+jDOrXHwEBqUE0LqTtlZ7l81CxjHSPl+vtwkBcNXT+i/7iAtRpmIfM8P3OUnUIG+yOWJLCc3O1tKHGPhWGl+fRDrzirz/TbdEpLlUA/hE2EhJmgqfwGvR1cBrE6/hbHc1s3n3hUJiok3ZSlzamspPs1VsRr+JvHlBOLxBZumvAYeJYznTjFThtIhsGA6g1DVfoUh7xlrSSlH+KhN9bMAVRXeFCDL+bJB3JfU7YvTagf0tSOU1ayP91hUSz1y+PA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(2401047)(8121501046)(93006095)(93004095)(10201501046)(3231475)(944501520)(52105112)(3002001)(6041310)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(201702281529075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(201708071742011)(7699051)(76991095); SRVR:CY4PR01MB2390; BCL:0; PCL:0; RULEID:; SRVR:CY4PR01MB2390; X-Forefront-PRVS: 08978A8F5C X-Microsoft-Exchange-Diagnostics: 1; CY4PR01MB2390; 23:bwxgLlw0KCtgu15Vy6ZUBGdFLjdrK95Rcnr3Kn8S2+DKFYW8TyQ+FA61AjUQe4Zt7Q0EIFPLUEU3JEK5KXGY3MxAH9rxzMWlO8CYIZxsJzFKDtGX+0cRmtoGeM4IrAyZVJ9U9niUJImNt3dCCCAKXwPbRayVb0ovE1sDrPfX1SoWPVMPOZImRWfkrb2ryU7LpgvQvuzJFUzwsTZHm6WRhF0BEmmNt3l0DhGYxxf7/Qvnxkc5CuVbZZjDNpyfh2ioxUSbxRKYBmNERbCwb38fXGCaxCSYmTRqpHHcAL5EvAh1e/HDhNS+r9VBWi+gK8Vjf9CKMNX26LdxCaZrpUe1Oeodm2ozPznqgpVC0gQfg8GY5wmUz1nHnb7mhgCFANnRzClbMxhLG6uPQwyuxuE0hiuBBRuYyQwEWyJto/BFim1JZDFcBvh/0rDpFAghRgLaehIqRuOnhIpbGSdiGJqj1jSQELETfUFB8VpXd+/5OzfDHl027nPGugGVCt0KeMjVMC4iquKEk5GFly1XcL8DhH85cOU1XaW8tdiOzQeNnty2XVCBrvBnRraFlasKTTiqKdH9JmgeUR22egadovLi5OeCuwWMg0dng5BA8TJEGGtZbKK/XAwCA8cPzsVQP/tnl+IDfRYRDbOmxC8cJ4IG+2y48wR1FTixxoJX8y78KnEmmKjHgShmIBtGLqwmehjDs9JUMzmBkLZTi64UjPV80mDe6M5gdxzF3cpewLZUssykTmcM5VnwYaE6KA1trniV+wTD0Bgrd+ugFI8RZvROhFubjoUpoSuIOu0F/Ftna6YJgmHrqhMFRgiiaQ8lChC/R3xB+9zMzEDjXYF0tv0H5i7mGaa2eQ/A/XdLLoF6AuLekZXSVpkhwTWHPhSGM9BmM5UYXCxicWyT1qbkgUvugW6mafTuxJxOLaqMZx4/pbg3Z40UiyxN+VTu39vkl+XUkro4f2/dGOAYZxSUD1vv5l0U/pZwSsu1IxVVad5jEwqD/+qiupOxNRTdZSe3znQgrS5eBRvApU+2EoTb2o5P9GJJUVcjZJL/RCo4wGWIKKR8hkpfCAn4xJyF1H0152f9t4+uDfYWVkvcyyjA4AUVeGdYMwLwjzR9O8tI1b2sCo8Q7Th6wVYONxguoNStfMhRy5GAsCLWP16ibm8CvW6pZA== X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: TREKCThE8HUJaMk7fEzK3wT5sMyvsdehRztFYpXRcKydrvZ4yGP/mD6fbgWbxgUACDlo7Xhqkp4YQJapBtzyms63ZPBOgrGRlZf5oswA1+etdW6tBY1xfM8NLcUAg3zCU9KeGbDBrzAd491irrvsy9sLQtl3LfcK7qudEXKGpNTTw39sYPSuqn4RwZfz/gSu2B/ulPqqp0lEamoyD67Gly30NqSNJ1MEU4bvvYeqtUr3p9kE1TIn0LMgrHYJi9y3Z/9hSeA38z48ZrSptmAaQoNJsZRjzSMslvVdgWtR2Ri65ak1bk5/MExMYHPkG1sb X-Microsoft-Exchange-Diagnostics: 1; CY4PR01MB2390; 6:rdKISzLyeHbA0H/FOF/Qj5Cgk4e4BeFCkv4Ztt57gpn0+O9eTsz4HxfmKXHJSSHKqAHlwiS4oQ6k+n7ojXRhm1qAnaEB6cL76pJSLuuI5k2mUNnPgduZ2QlPyRByxvCdc0TZppoEytbNSLLVp5EGNG7Bg0fbQCRyQpXq6nCfZfdpIHAD465tclg0mUE7Evj2nkuJWfCLvz+nB/dQuJ7XRR019quvZfqAgwjHISTkuSVjsYAJ5aBNvxshWwkCTB2nz+Be60WQxEsO2UNVf3JUnBE6tWj7DIAkF6FqEurFUVwyb1IK0fPByEoPhfU0qd3tCvZKZ5gQ9xl8Zbomw6642wseD15ug6n9SHTXyvbjiHUrbogG/ko/qgAy6eyr6ga3H/CtZJ78gLVpbf4lU3VWJkwuusQ19LleuDzSUIm2vbelARaEHWoXzf/uain9xzO/vdD9dw2pspPGgTKLXMYgDA==; 5:nI7q4OOEQ5GaYJBkgD+I9nehX+1iW8aTbUcdvSw3IevHsiIcf82U3No4+ONvIYtDH4C45wJT1drAoVnENKoaagwDXXpQUk6DV45RLlyRBeo6K8J6xPhue1fcwDG5dRD42eF6QH2KguIg35s+I3zeJKbFxcrh+rBvLkwaccHzZJM=; 7:rW1EkwpXQGlswEZ2Xb9F3ogdZ0RFJ0VwEYtWIbC/D990Uh0hTOeC08W2Vb6HAv/VIHiQpr2Tp3RwD6MZPBw2Sz6+OC/dAvdpCEsfMDei6rwiv+x0KIf5suRnqReEW0lowtLYI+YtjkK8jZwLRmBtHw== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: mit.edu X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Dec 2018 05:33:37.4003 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 56e89cdf-7107-4b30-f77d-08d66a2a854f X-MS-Exchange-CrossTenant-Id: 64afd9ba-0ecf-4acf-bc36-935f6235ba8b X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=64afd9ba-0ecf-4acf-bc36-935f6235ba8b; Ip=[18.9.28.11]; Helo=[outgoing.mit.edu] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR01MB2390 Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org There are enough credits reserved for most dioread_nolock writes; however, if the extent tree is sufficiently deep, and/or quota is enabled, the code was not allowing for all eventualities when reserving journal credits for the unwritten extent conversion. This problem can be seen using xfstests ext4/034: WARNING: CPU: 1 PID: 257 at fs/ext4/ext4_jbd2.c:271 __ext4_handle_dirty_metadata+0x10c/0x180 Workqueue: ext4-rsv-conversion ext4_end_io_rsv_work RIP: 0010:__ext4_handle_dirty_metadata+0x10c/0x180 ... EXT4-fs: ext4_free_blocks:4938: aborting transaction: error 28 in __ext4_handle_dirty_metadata EXT4: jbd2_journal_dirty_metadata failed: handle type 11 started at line 4921, credits 4/0, errcode -28 EXT4-fs error (device dm-1) in ext4_free_blocks:4950: error 28 Signed-off-by: Theodore Ts'o Cc: stable@kernel.org Reviewed-by: Liu Bo --- fs/ext4/inode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 9affabd07682..165ff331d998 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -2778,7 +2778,8 @@ static int ext4_writepages(struct address_space *mapping, * We may need to convert up to one extent per block in * the page and we may dirty the inode. */ - rsv_blocks = 1 + (PAGE_SIZE >> inode->i_blkbits); + rsv_blocks = 1 + ext4_chunk_trans_blocks(inode, + PAGE_SIZE >> inode->i_blkbits); } /*