Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp2253604ybg; Sun, 27 Oct 2019 14:28:06 -0700 (PDT) X-Google-Smtp-Source: APXvYqxQfN6iS+4Oe4bk3DyhFN4UN70r2ZTdJzTHYVXpgVnEyaFkTE5HLuYx7CqBEtkX6uXy4VQ8 X-Received: by 2002:a17:906:f15:: with SMTP id z21mr13877851eji.119.1572211685910; Sun, 27 Oct 2019 14:28:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572211685; cv=none; d=google.com; s=arc-20160816; b=bjqSerPAfs1/Yy1eniuI+Ycdfx5LrE025e+qPpK9sNCDuuX8zpwW83grXdikUtH9A5 B6aoRcFZfg9D6zx1n5WmvKDIDaTTu0fdAR9yvtUaF7OJiVNaNiIJK2aMqOa4/aBUsBw7 KIWKkFaiDJ1FUyEq4QIgg8nkXNPbGalMA+nnP5iAs0Sfl09cPUbct/9BPgLzgQK+Nk+B VZB0/a81zfHEDPikIoHcOAwk1ybTuJTq4WKMGRf7hflp6jZIWCIODYLxh1eI6fx7pP2n MeJsCCODNQDyhjAqUfuYZ3/PLcy06aFd4EkPedlBr6LT4vY53WmKnFASFDo5XW8C916L Tp6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=GMPch/bBxA7ky61pcVI4tMVtaSM0hkdYQxqMoSYegZg=; b=0mYcCtznxo+vHjs0tRV7Sb37AjQPRjdIMzLKkwXimFI0lIHQyHgDyBjer1cRJDQvVf +ibduRRlNhLcG/tBqSazaMFjyKs2YAMrcQOuFKgL5etKL+q1S7Wn2ujBo+5DcbGRzSc0 kA4+94Oq//Tvy80vM5hdGOtdR/+WKqYE/kRhUn2vONNR5DWTOT7AXtqAguxhpTfCSble Tsu44asSuyY7VQ8v5kPBJbYpF5ExDR1qTjlFEmX4AmANM5S1Rnd1P2Pd2hwAxUGjDMbp PXJfpMSJnDMifaK5t+ITXjLbHBQma6oFhvZOIqnrYdxj/jp65vqwml2MrTOZ/llPmjt8 i6Jg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=rrZzmm8Z; 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 m16si4609620ejd.306.2019.10.27.14.27.42; Sun, 27 Oct 2019 14:28: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; dkim=pass header.i=@kernel.org header.s=default header.b=rrZzmm8Z; 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 S1732889AbfJ0V0N (ORCPT + 99 others); Sun, 27 Oct 2019 17:26:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:48126 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732270AbfJ0V0L (ORCPT ); Sun, 27 Oct 2019 17:26:11 -0400 Received: from localhost (100.50.158.77.rev.sfr.net [77.158.50.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9625421D80; Sun, 27 Oct 2019 21:26:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572211571; bh=8zOiwY3KowzDw7wOpnwU1HLCpcB7b8/Mfnq0T6Kahf0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rrZzmm8ZMX4J6tUg8GIhOwAN3TZHVC9sOo2/66MOJH+6/NlWOrV7RwSAT4B5BcFCa CjP4fS/A8HgRGI7uUD0lx4KuQmFRlNOIWTAmAuLI1/e+L5XjnecoWEsmXZxeProLlD iqXU3jAana0oG04Xi5Sw80Tkd/QzOT29xezx5JiE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Filipe Manana , David Sterba Subject: [PATCH 5.3 182/197] Btrfs: add missing extents release on file extent cluster relocation error Date: Sun, 27 Oct 2019 22:01:40 +0100 Message-Id: <20191027203406.119457603@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191027203351.684916567@linuxfoundation.org> References: <20191027203351.684916567@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Filipe Manana commit 44db1216efe37bf670f8d1019cdc41658d84baf5 upstream. If we error out when finding a page at relocate_file_extent_cluster(), we need to release the outstanding extents counter on the relocation inode, set by the previous call to btrfs_delalloc_reserve_metadata(), otherwise the inode's block reserve size can never decrease to zero and metadata space is leaked. Therefore add a call to btrfs_delalloc_release_extents() in case we can't find the target page. Fixes: 8b62f87bad9c ("Btrfs: rework outstanding_extents") CC: stable@vger.kernel.org # 4.19+ Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: David Sterba Signed-off-by: Greg Kroah-Hartman --- fs/btrfs/relocation.c | 2 ++ 1 file changed, 2 insertions(+) --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c @@ -3276,6 +3276,8 @@ static int relocate_file_extent_cluster( if (!page) { btrfs_delalloc_release_metadata(BTRFS_I(inode), PAGE_SIZE, true); + btrfs_delalloc_release_extents(BTRFS_I(inode), + PAGE_SIZE, true); ret = -ENOMEM; goto out; }