Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4092326ybz; Mon, 20 Apr 2020 15:37:14 -0700 (PDT) X-Google-Smtp-Source: APiQypLGlleAuV0LQUnsK2uwvBYwzLZZaihCmo2CS/JD2ZbGwkxgDnkLJKoYHMc7w6gyUFgp7P0+ X-Received: by 2002:a17:906:1502:: with SMTP id b2mr18405897ejd.359.1587422234662; Mon, 20 Apr 2020 15:37:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587422234; cv=none; d=google.com; s=arc-20160816; b=y7p+1y3J7OHfoVbF0+5iujpn8mukr7QKnr25dwjrvA6s65R5dHN7A/eyJeUmVkRlOu 29pRMtUKGW8TWojquxqghPJburCTB3oENh4JSIDmSMak0GJ34yBO0S8MtfBClLar8R0s X12N/LGXx1p2GcVvtARznszyaERnuDIdha0TqjEp4b5YjVwECb9J0zAngNXR74lDMdWJ 9bCBu33sgBnOIz8iU75lOQUEcHZZWwqBa+EDNiT2zjmara9gbCVstItvmxLqpEGxjLIw NrhaZuG5d9RmphPnVydqJap69mpDPh0NPK9HUuGuo/ZrqvHhXa48qXOTcDKbMtxZ6RaQ xzXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:mail-followup-to :reply-to:message-id:subject:cc:to:from:date; bh=5TJsrsTonumIDg2WmY9DCgEynjqQyZBo4YI2fkWY5Jo=; b=iWdiqayC5M28zioFd6B6N3zZ7sslH/z6Zcl0i8OShnhnOTOO9qdtO6DY+mTPD/U5Et LTfVZhiBm8YNNIXXwAfb+WxvJu4gJp4l9Xdj5WR29ROFoyMtiCyRX6qZMYYJhgkocmXM ciALQVhx69Nw49uOmDygI3NAIcJxjrCBavEKn+XCvZvtAvsaId3+kRLvOtKcyQ5+QLzg b/nDeI6sjtDcxLim7innPuFeXaMbDXmnehubwhqwkUncs5NuMHcMFBgHzyg9Dt20fwyj Y1nF1wQs7QaVTzZNhdgrPz0AXV4+VwH44XFKVUWYIkQsRtnS8e+m2wL1bapC44pRZqWP 1ClQ== ARC-Authentication-Results: i=1; mx.google.com; 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 g9si583901edj.131.2020.04.20.15.36.51; Mon, 20 Apr 2020 15:37:14 -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; 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 S1728041AbgDTWdQ (ORCPT + 99 others); Mon, 20 Apr 2020 18:33:16 -0400 Received: from mx2.suse.de ([195.135.220.15]:51358 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726522AbgDTWdP (ORCPT ); Mon, 20 Apr 2020 18:33:15 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id AD72CAF30; Mon, 20 Apr 2020 22:33:12 +0000 (UTC) Received: by ds.suse.cz (Postfix, from userid 10065) id 49B5ADA72D; Tue, 21 Apr 2020 00:32:30 +0200 (CEST) Date: Tue, 21 Apr 2020 00:32:29 +0200 From: David Sterba To: Filipe Manana Cc: Xiyu Yang , Chris Mason , Josef Bacik , David Sterba , Jeff Mahoney , linux-btrfs , linux-kernel@vger.kernel.org, yuanxzhang@fudan.edu.cn, kjlu@umn.edu, Xin Tan Subject: Re: [PATCH] btrfs: Fix refcnt leak in btrfs_recover_relocation Message-ID: <20200420223229.GH18421@twin.jikos.cz> Reply-To: dsterba@suse.cz Mail-Followup-To: dsterba@suse.cz, Filipe Manana , Xiyu Yang , Chris Mason , Josef Bacik , David Sterba , Jeff Mahoney , linux-btrfs , linux-kernel@vger.kernel.org, yuanxzhang@fudan.edu.cn, kjlu@umn.edu, Xin Tan References: <1587361180-83334-1-git-send-email-xiyuyang19@fudan.edu.cn> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23.1-rc1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Apr 20, 2020 at 06:35:56PM +0100, Filipe Manana wrote: > On Mon, Apr 20, 2020 at 6:34 PM Filipe Manana wrote: > > > > On Mon, Apr 20, 2020 at 6:50 AM Xiyu Yang wrote: > > > > > > btrfs_recover_relocation() invokes btrfs_join_transaction(), which joins > > > a btrfs_trans_handle object into transactions and returns a reference of > > > it with increased refcount to "trans". > > > > > > When btrfs_recover_relocation() returns, "trans" becomes invalid, so the > > > refcount should be decreased to keep refcount balanced. > > > > > > The reference counting issue happens in one exception handling path of > > > btrfs_recover_relocation(). When read_fs_root() failed, the refcnt > > > increased by btrfs_join_transaction() is not decreased, causing a refcnt > > > leak. > > > > > > Fix this issue by calling btrfs_end_transaction() on this error path > > > when read_fs_root() failed. > > > > > > Fixes: 79787eaab461 ("btrfs: replace many BUG_ONs with proper error > > > handling") > > > Signed-off-by: Xiyu Yang > > > Signed-off-by: Xin Tan > > > > Reviewed-by: Filipe Manana > > > > Looks good, thanks. > > Btw, the subject could be more clear. > Instead of > > "btrfs: Fix refcnt leak in btrfs_recover_relocation" > > something like > > "btrfs: fix transaction leak in ..." > > David can probably fixup that when he picks the patch. Yes, thanks, simple fixups are fine.