Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp593120ybt; Fri, 19 Jun 2020 08:55:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw+CGCPlTDklsOXaOZkRsL5pYgE1EanTShLROfjmqIlr0XaOH676hisO4rsTZegM6Pu9J+f X-Received: by 2002:a17:906:842:: with SMTP id f2mr3847920ejd.547.1592582143443; Fri, 19 Jun 2020 08:55:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592582143; cv=none; d=google.com; s=arc-20160816; b=CWDSF3KxNHE8xSFxSf6kmdV75EaYoHBMRj/VX7ivtxNO8wSareHq4/CN035x+M0JMA wL3LixqO9+eX3FhfqL/B1mrrTvqXYa11eUGHq3Eiu5WAP3dgThXfubI7NGsz5GkjD4rX mYaGTfy85Lx9MUUR8zo0h5VHmyMLM2KnwHs2FfnPvY4PBqh/SuqPK4KyvMtXDu0osDmJ KsI8BC91Y8r/YVdHm04P9VGj1e7z3dJycBC75CKUxa2+GGeN9lh8xNUYgD/c1m24oMqB SdlZGU1qlMZsX+IffjR284/rvzeKBmlwfOzYhBgMRkPsKy+F1Zzcj0H0fkRDEWDQS9Yf CLnw== 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=/GYqU0DxMhdSzrlm1rEWK91OLOFY/HrFZjrEvRQ4aLc=; b=b9MsT5YvzUXabVXML39dWq6fxXCFEIQYYtv6phQJ4jO0dTRQT8lDa8J10LO/XcE8Se AjA41DFihHafiNuYWEiSDAzmGxIiHSeWfiluY3NVcU8clhqSG4vveA63GhvZx/RBrgyW Q+OIkpeSpQgCtcVNx1IEF2wDF2LKKZYwxzTSDDADTWwGCTjeyOk5bgS/LgJ8yftMo1bi 4RV0wGJNknTrLlmt1PmhZz63RdKPns1Gw1VpGftfH1+U0j8tuE5iIDkfEeIiu+cIJ/c/ H0jxWhayJkmT4/+Cb7u7Ew9vFKDPEWTzFeNqAbTyAKDt4bN7leqE1svlGtpVF9WV9wC5 pmUQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=DPgWiUoB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w23si3627476edv.71.2020.06.19.08.55.21; Fri, 19 Jun 2020 08:55:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=DPgWiUoB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2393091AbgFSPWy (ORCPT + 99 others); Fri, 19 Jun 2020 11:22:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:49338 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2403903AbgFSPTA (ORCPT ); Fri, 19 Jun 2020 11:19:00 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (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 E87472184D; Fri, 19 Jun 2020 15:18:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592579939; bh=P9JcKZNM/8l/scsQa6x9Ys0iK7XhzU3x66U2UwdZeQk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DPgWiUoB3A84rz2VvIf831tWXtZKyXyqbSF8lZFdSji5OMBZdDioic+2a6Ly7B6tx nByrM41F8pKMYGoad1CHWleJhKQoJyv3Du5CzCtzSHaVDNUpd2KQIO15CqtCrMb8JC m3QUtdsUpGoi/xzc198Z5KAa0LpY8JuuC661AtT4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Nikolay Borisov , Josef Bacik , David Sterba , Sasha Levin Subject: [PATCH 5.7 062/376] btrfs: account for trans_block_rsv in may_commit_transaction Date: Fri, 19 Jun 2020 16:29:40 +0200 Message-Id: <20200619141713.292497147@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200619141710.350494719@linuxfoundation.org> References: <20200619141710.350494719@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: Josef Bacik [ Upstream commit bb4f58a747f0421b10645fbf75a6acc88da0de50 ] On ppc64le with 64k page size (respectively 64k block size) generic/320 was failing and debug output showed we were getting a premature ENOSPC with a bunch of space in btrfs_fs_info::trans_block_rsv. This meant there were still open transaction handles holding space, yet the flusher didn't commit the transaction because it deemed the freed space won't be enough to satisfy the current reserve ticket. Fix this by accounting for space in trans_block_rsv when deciding whether the current transaction should be committed or not. Reviewed-by: Nikolay Borisov Tested-by: Nikolay Borisov Signed-off-by: Josef Bacik Signed-off-by: David Sterba Signed-off-by: Sasha Levin --- fs/btrfs/space-info.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c index ff17a4420358..3c0e9999bfd7 100644 --- a/fs/btrfs/space-info.c +++ b/fs/btrfs/space-info.c @@ -626,6 +626,7 @@ static int may_commit_transaction(struct btrfs_fs_info *fs_info, struct reserve_ticket *ticket = NULL; struct btrfs_block_rsv *delayed_rsv = &fs_info->delayed_block_rsv; struct btrfs_block_rsv *delayed_refs_rsv = &fs_info->delayed_refs_rsv; + struct btrfs_block_rsv *trans_rsv = &fs_info->trans_block_rsv; struct btrfs_trans_handle *trans; u64 bytes_needed; u64 reclaim_bytes = 0; @@ -688,6 +689,11 @@ static int may_commit_transaction(struct btrfs_fs_info *fs_info, spin_lock(&delayed_refs_rsv->lock); reclaim_bytes += delayed_refs_rsv->reserved; spin_unlock(&delayed_refs_rsv->lock); + + spin_lock(&trans_rsv->lock); + reclaim_bytes += trans_rsv->reserved; + spin_unlock(&trans_rsv->lock); + if (reclaim_bytes >= bytes_needed) goto commit; bytes_needed -= reclaim_bytes; -- 2.25.1