Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1668168ybz; Thu, 16 Apr 2020 13:18:36 -0700 (PDT) X-Google-Smtp-Source: APiQypLtvMOADEHLgcg+8X3SApUEXs6rHAK+AA4Ml5v7jWX/hzaT/QL1U5nEZglarNCjwCfG+2h1 X-Received: by 2002:aa7:cc8a:: with SMTP id p10mr33036582edt.185.1587068316205; Thu, 16 Apr 2020 13:18:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587068316; cv=none; d=google.com; s=arc-20160816; b=lGPkymy6a64QZmFw3ailNVQWgG49+whgyZYmtgWmv7pgQiPzQyKyvlap8EQn0Mhmk8 2PSY94UbYUKBVWwVskiz+J7xpEFj5/4OLvkY56l49wgbq2GT/cnGyKaB+VxHNtW+sjqX rz3ElIHiuc5+R96aK9rcjip3nKvZPzKDTsSe2VS0A+x0wCig4RtaNZHPYrk5t/Dm2edU eBVRIAll5SK+ZVU/ojuoX8P/kJv+yCP5NS7HTIYld6nFCfC0PUkB6Gzl2nHEQrFptQ4V 0WskaWLsTCXBIqW1DeC6wzjajjYSVC47UOFMi/cEfirGhl3wknd5tcTzIeDun0VS20bs z6HQ== 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=U1zO52hgtgVSinmNSUdID2lgZ8Hm4gKlZDUc3VzQaTQ=; b=abPz0HPGWwG/S+YoEAc/zli99C7/RWKZkbSW13bgmrTIC+uyTlaIDIEOddNoGVgN4b aaUuCt46Einqb27Dd14SLlzexhp7uXlTeBkjkGO932xb0OxOuljtoVzfPlEiHqeeUNX7 8nnpJecKRNo8/YKgYGOuSRl8om/7kz5tDneMdicCc/RPs04cmk8cVu2toBbtYDTCVFZD LrYLlfER+9YTx53mEvLXNOrVhaSncXQD6jeOF8A4LifmuieOdeHBpaAMG9C4OI0MDS0r kVlUttW1pBzpjALw8hxZxx7G8GGD5lKpsklI9KShgoMHS+ISTVoFrvYDwJyxBeG0pw+D 1EOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=F+Z9gzGT; 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 k3si13544429eds.261.2020.04.16.13.18.13; Thu, 16 Apr 2020 13:18:36 -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=F+Z9gzGT; 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 S2393165AbgDPOMX (ORCPT + 99 others); Thu, 16 Apr 2020 10:12:23 -0400 Received: from mail.kernel.org ([198.145.29.99]:34202 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2635657AbgDPNsK (ORCPT ); Thu, 16 Apr 2020 09:48:10 -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 31284208E4; Thu, 16 Apr 2020 13:48:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587044889; bh=26hgxjMd+f9rckP63OnUNWM2GnK+GowOVTaS4I0FbMI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=F+Z9gzGTj7dQ7Z9EXX3IggkqqmPiP2JrKKN81TBslLUUwO1TgdYLygL07b8x1sSFy GCUSG4XTfb3+juUr+2C1lZYv8/DVfpPDkRgBWQ2dEurPPXoVVkxkaPaZRwwvy8G1fW v6NGSmg8h64D9lcXhfsB06iVAF8ptdoW6S6/CzKY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Robbie Ko , Filipe Manana , David Sterba Subject: [PATCH 5.4 144/232] btrfs: fix missing semaphore unlock in btrfs_sync_file Date: Thu, 16 Apr 2020 15:23:58 +0200 Message-Id: <20200416131332.991463691@linuxfoundation.org> X-Mailer: git-send-email 2.26.1 In-Reply-To: <20200416131316.640996080@linuxfoundation.org> References: <20200416131316.640996080@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: Robbie Ko commit 6ff06729c22ec0b7498d900d79cc88cfb8aceaeb upstream. Ordered ops are started twice in sync file, once outside of inode mutex and once inside, taking the dio semaphore. There was one error path missing the semaphore unlock. Fixes: aab15e8ec2576 ("Btrfs: fix rare chances for data loss when doing a fast fsync") CC: stable@vger.kernel.org # 4.19+ Signed-off-by: Robbie Ko Reviewed-by: Filipe Manana [ add changelog ] Signed-off-by: David Sterba Signed-off-by: Greg Kroah-Hartman --- fs/btrfs/file.c | 1 + 1 file changed, 1 insertion(+) --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -2137,6 +2137,7 @@ int btrfs_sync_file(struct file *file, l */ ret = start_ordered_ops(inode, start, end); if (ret) { + up_write(&BTRFS_I(inode)->dio_sem); inode_unlock(inode); goto out; }