Received: by 10.223.185.116 with SMTP id b49csp3674wrg; Thu, 15 Feb 2018 15:21:52 -0800 (PST) X-Google-Smtp-Source: AH8x225NNaSwBAmmance88h98/BaYUQg/xbkLWw97U/FhQpf4ArABb6fm1RAz76IpDWn9ypwHtjx X-Received: by 10.98.20.77 with SMTP id 74mr4177359pfu.45.1518736912077; Thu, 15 Feb 2018 15:21:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518736912; cv=none; d=google.com; s=arc-20160816; b=etvOqAqVmIUiVzfx+5n/uyU7mTQSCZ/5qadW3rQd+JMqB3hzpgUugLgBtdtL1UXYyJ /7Y3MXDowP0HfKsOXkbaPeld6E8Fjkr3DEwXPMX49kH9Xp2oO8qr8SEwwpOEHpL0+J/A bDVArnionJiA/RYpUPGCtECe3YyBRPoP9cqKoMI+hW8rH6QBZnJ3xwB+bnc6xSZrYZLm UemlaSBOF7Kfw7UPI7+GZn9Sm/7D5gqCDylRqoS5t7SnwkR73BKTgRQpYE5ZGVApUrt6 qSKK1h0q6UfNiuoZ10+JV2XU7PAtFZ537bWLpyjVLEQKponcT1zvXirUaHhz9EVNl/Vt iJNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=Ff38ysTjdcIHvUtbyhhGxBgMHEEXPDGJpYH8VUcm5Z0=; b=J8rKklqdS/Oh98NWwHO8ecAD1K63JLB6Byv+OOa74GJnGmdoWURyb519o2j8JnqIGb wgWU1tcCqInEo1sIzSRejXcEBTNztUNgUc0ddl3labfuMy+8WGyRieGa7uULkKWCJzi6 aogw2XKs3TXsatV1ptDVdxnOofbndf7330Y5YbjDapY8X/wGejUegk2hm/jbkz7+90LZ 5KamV8NBis9xdJQ9Z+Mf/s6V8l8P31gepdhdQ3ovIs1mLa/BfoAYVTGO/oi+7hv8WYZR 8R2EgEuRQeBjS1NRH54Fxenc3i4iaMUSot/C/9PyNKa8UV9TukULGMzt8p1P+gcisoia VJFw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f30-v6si2044501plj.436.2018.02.15.15.21.24; Thu, 15 Feb 2018 15:21:52 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423218AbeBOPh4 (ORCPT + 99 others); Thu, 15 Feb 2018 10:37:56 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:59202 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1422752AbeBOPhy (ORCPT ); Thu, 15 Feb 2018 10:37:54 -0500 Received: from localhost (LFbn-1-12258-90.w90-92.abo.wanadoo.fr [90.92.71.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 69CD9109D; Thu, 15 Feb 2018 15:37:53 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Nikolay Borisov , Qu Wenruo , David Sterba Subject: [PATCH 4.14 182/195] btrfs: Handle btrfs_set_extent_delalloc failure in fixup worker Date: Thu, 15 Feb 2018 16:17:53 +0100 Message-Id: <20180215151715.348192237@linuxfoundation.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180215151705.738773577@linuxfoundation.org> References: <20180215151705.738773577@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Nikolay Borisov commit f3038ee3a3f1017a1cbe9907e31fa12d366c5dcb upstream. This function was introduced by 247e743cbe6e ("Btrfs: Use async helpers to deal with pages that have been improperly dirtied") and it didn't do any error handling then. This function might very well fail in ENOMEM situation, yet it's not handled, this could lead to inconsistent state. So let's handle the failure by setting the mapping error bit. Signed-off-by: Nikolay Borisov Reviewed-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba Signed-off-by: Greg Kroah-Hartman --- fs/btrfs/inode.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -2101,8 +2101,15 @@ again: goto out; } - btrfs_set_extent_delalloc(inode, page_start, page_end, &cached_state, - 0); + ret = btrfs_set_extent_delalloc(inode, page_start, page_end, + &cached_state, 0); + if (ret) { + mapping_set_error(page->mapping, ret); + end_extent_writepage(page, ret, page_start, page_end); + ClearPageChecked(page); + goto out; + } + ClearPageChecked(page); set_page_dirty(page); out: