Received: by 10.213.65.68 with SMTP id h4csp269914imn; Fri, 23 Mar 2018 04:23:05 -0700 (PDT) X-Google-Smtp-Source: AG47ELu2tzOsCFlSQ0lL9wdL9cQv6pCyjHwDrh2fQcjeO/T8cE7+qvmafwlLPilxoACnAXpAsxgd X-Received: by 10.98.144.65 with SMTP id a62mr23525146pfe.96.1521804185798; Fri, 23 Mar 2018 04:23:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521804185; cv=none; d=google.com; s=arc-20160816; b=OlJvjxobAodPx/+Y77fNwturwrfZxIgkN/k8vlnNZXzgAHFavKuwvNBtzvPOM6cg6r gOmVL2eRBsTj8AXpAocW/hiHs5IMc1X3bsiXzv4vFSuJ0rkV+ZC7alX03c+kegDncx6R jPYvMOWLtymYN/nQuUVM45srB2nHSSumWPFrfYHpOWGmJ5TWvzT9G5iZ8TZVGF8sOSrn dt456FIPlTFdRXIf4hUsc+o3ojm6E+Ao/0tillZx2ZCeiPtPMRD3ebMh9Xi1+AirJ0fA VfOcExJeKUIwyDL4fjDzE/NZNlHXz+BJ2hfvz7MFIxNqw0ENtUpEOl3jpOzE86ytAl7i 6UQg== 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=GhlKFbStUJGSnWQ28bYzHLRPp0zXOnE+MsANvr+XZ0Y=; b=wK7Apl6f8bMF83+snpABtwWmcC7XKXo2iHkxnd2WB8HbyLw5NS6RyCeEXzN59/9k1O WXbz1YNWJOPy0Xm45I20a8RaU2JsLrVqfq46V8ylvGiCIyQOIah/0o4rDVySybZSMP5s Bl4SlHHFUZxmFFiIlI8t7FftoQ3wXtMKEF2cyQntCm0+JWu8fExl/vj8TUVi4F7Mkosp EdDgjzoENQbHuvQLFPoo/FgLbfMwj6xrR1+gsEc1Mvb8I5xsLgLivVgTudUcgu2AmAJR xXOg551IdsynQrhGnIGnZnJ8aTxlzR4ZHpHuSH9C3xLOwQMHCkHQm2Uhq7lBwwJyLzXa HKSw== 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 p7-v6si2170458plk.653.2018.03.23.04.22.50; Fri, 23 Mar 2018 04:23:05 -0700 (PDT) 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 S1755511AbeCWKIQ (ORCPT + 99 others); Fri, 23 Mar 2018 06:08:16 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:41594 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755500AbeCWKIN (ORCPT ); Fri, 23 Mar 2018 06:08:13 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id C21F8DF6; Fri, 23 Mar 2018 10:08:12 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Filipe Manana , David Sterba , Sasha Levin Subject: [PATCH 4.9 078/177] Btrfs: fix extent map leak during fallocate error path Date: Fri, 23 Mar 2018 10:53:26 +0100 Message-Id: <20180323094208.752768865@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180323094205.090519271@linuxfoundation.org> References: <20180323094205.090519271@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review 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.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Filipe Manana [ Upstream commit be2d253cc98244765323a7c94cc1ac5cd5a17072 ] If the call to btrfs_qgroup_reserve_data() failed, we were leaking an extent map structure. The failure can happen either due to an -ENOMEM condition or, when quotas are enabled, due to -EDQUOT for example. Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- fs/btrfs/file.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -2817,8 +2817,10 @@ static long btrfs_fallocate(struct file } ret = btrfs_qgroup_reserve_data(inode, cur_offset, last_byte - cur_offset); - if (ret < 0) + if (ret < 0) { + free_extent_map(em); break; + } } else { /* * Do not need to reserve unwritten extent for this