Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp1814880pxb; Thu, 16 Sep 2021 16:42:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJweQUEA8Mhoze56+ldovM+JR0s7OyUevU5wF53ldid2Maj3Uusy3HV6XF32XsjCUkS8KZgm X-Received: by 2002:a92:a30e:: with SMTP id a14mr5607805ili.238.1631835757208; Thu, 16 Sep 2021 16:42:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631835757; cv=none; d=google.com; s=arc-20160816; b=mRe2jrynABvlBbPiDw/bszMwybA7sdNGt8bBGc/PtDLskAh6bL8pUt0kJeLW0aOTMs 05FWA0CuRP55Uo8ZY9ppmGoLgaOdknft9VaEPOI1MxzSiLxnP7lpwoGj6sDhivjQ8NvI oC5VpjuWFf936jzR570/Q3oIqxrjwQF6xJdoGNM0zv5B1hJLElENBD8LzoHZS/ZRk8W+ +9KY8hy5irgMQRiRT/y91UIck6EZLv2NjTqw+lhq3IAI34Zid3U9WhhcOPPrJAOaEyCS Imx/v5LKteg1O35sXeiuJ93QhYIa7a+QhCek64C/NRnisYXPcDEcFFZ3z6fmUhJBGvFu 0/1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=xaBhiF316SPsVVuV7h47NK/jpuUHCnN/inpoIfG4Pvw=; b=ZuQ2ncVLwxCh2s79UC9myvZQUkrXNDLztiYBBbVVIxVZuih7GIxePATPQoZcAQRQZy ko9h2y3wvd8dCE6MgpvrOcYCm5iiNyjrONF9gvgF25HFkUCva1KJqegUwV0C60s5dGIz Xx+drn5uA9lsdESnHklxi9uxKSHbhIeiYnACFeEEXlubH99a6SNu1OudeysJEzaJyxmP NpF/vROm0RkQBtXrNWSIZhq+EnCuLVL90q+PG8sei4rk7bS6NTLNqklUSsXF6qkGJXs0 dL0D9NNRVejltGrFCqdces0Fcq6hdfW/uJJghvCdc48GKvDe3L62T4lFWfQewGXSaTcP 21tQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=dro+fcFV; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h8si5094968iow.45.2021.09.16.16.42.26; Thu, 16 Sep 2021 16:42:37 -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=@linuxfoundation.org header.s=korg header.b=dro+fcFV; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348796AbhIPRDN (ORCPT + 99 others); Thu, 16 Sep 2021 13:03:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:54398 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243672AbhIPQzp (ORCPT ); Thu, 16 Sep 2021 12:55:45 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id B81CF61AA8; Thu, 16 Sep 2021 16:30:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631809840; bh=XW47Uo1xPV1hb30MATB/U2VwZ9EAXIQSmUmvn3oAYBI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dro+fcFVTKu3tNEme9RwJ5o7n75tVM2gUYqWWr9SV2m8JWMv4LZCWA5EbRh+Mt3yN +0yxoSrCkubEOKgqXCmYJinKlMHduEyj1YLP3CIz11UAGBP5gnv+vQbuwaCSu/OSnl Sb5yEiLAK6OMcoG/V+JgU/ATh4lhewZhB+p69IgM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Filipe Manana , Marcos Paulo de Souza , David Sterba , Sasha Levin Subject: [PATCH 5.13 302/380] btrfs: tree-log: check btrfs_lookup_data_extent return value Date: Thu, 16 Sep 2021 18:00:59 +0200 Message-Id: <20210916155814.331080946@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916155803.966362085@linuxfoundation.org> References: <20210916155803.966362085@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Marcos Paulo de Souza [ Upstream commit 3736127a3aa805602b7a2ad60ec9cfce68065fbb ] Function btrfs_lookup_data_extent calls btrfs_search_slot to verify if the EXTENT_ITEM exists in the extent tree. btrfs_search_slot can return values bellow zero if an error happened. Function replay_one_extent currently checks if the search found something (0 returned) and increments the reference, and if not, it seems to evaluate as 'not found'. Fix the condition by checking if the value was bellow zero and return early. Reviewed-by: Filipe Manana Signed-off-by: Marcos Paulo de Souza Reviewed-by: David Sterba Signed-off-by: David Sterba Signed-off-by: Sasha Levin --- fs/btrfs/tree-log.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 24555cc1f42d..9e9ab41df7da 100644 --- a/fs/btrfs/tree-log.c +++ b/fs/btrfs/tree-log.c @@ -753,7 +753,9 @@ static noinline int replay_one_extent(struct btrfs_trans_handle *trans, */ ret = btrfs_lookup_data_extent(fs_info, ins.objectid, ins.offset); - if (ret == 0) { + if (ret < 0) { + goto out; + } else if (ret == 0) { btrfs_init_generic_ref(&ref, BTRFS_ADD_DELAYED_REF, ins.objectid, ins.offset, 0); -- 2.30.2