Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp2225726ybi; Sun, 9 Jun 2019 06:43:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqw+J9yS9UggFvBCtQkjCOU6UUCgKGzsOAKqURyguYnRoqY15aFIpoqUVfKAGN7gJDmHHNsw X-Received: by 2002:a17:902:6bc8:: with SMTP id m8mr64444564plt.227.1560087811736; Sun, 09 Jun 2019 06:43:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560087811; cv=none; d=google.com; s=arc-20160816; b=MwByKQlYuzQJntqb784r7i60Mut3/9PD7ajyGkUOD8ro7es10nUNGZDLFbvVP9v0N4 rK7+BlvHWX2kf1lOXrHl3ofL63uq7AyhSpxvDbQE3nzxIzpCCl+PDHmq/EXWoKv5tA8F TvpEP2AZOFCWCLFiBQmDOcxJlLNKu1UFexC+G9/6fQwhUMgzvSg7Kh56Dd/Nk2JzGWzi SfGE+NSt1Us6gYzAd0zJkR6oePyC4KfCVVqBwvxaZAzd6dJaMpzERWGYOh/GC9skpBMg wsr5gy+KGfv3U4AC8YF/Ga8/5rl08d9rFbDKiyYELrNME6W0FJxrcwwnoby+INob0gav /2GA== 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 :date:message-id:cc:to:subject:from:dkim-signature:dkim-signature; bh=twWGZqUu+cmhyITWS4AXJAv0lQzHiFdmzeNRXeiHF7Y=; b=vWRCyEiTftGL19kh5YTb1ofFAhKPgcPhM6+a99Rfd3/4sqP5I8Tze7yFqrLnsI8kiF eo/168QQu2PG08K2hP8NEg4hTkXWHs/xyGz2s0mXnWGdlpRUwS+vyQx4FbQryezxNbsv Ko8pqxrd2SLv9e8qagbVJAVC4TDymyud07eC6DdJilOR793TW/zP35h/IztgpK5as7RR p1sV6AS027Nep0rRxVB4bgabKovXlqt0cPW4pMzwOG4Ua04540LDrmVYFm6Fw9cTALVo GNz36kYbd4k+tuek6LnxPUP18peDNfSPme71mK8zEZ5kEJUAftASmSxyZEttF8nIS/Bz 8CQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nexedi.com header.s=mandrill header.b=mNxlOB4T; dkim=pass header.i=@mandrillapp.com header.s=mandrill header.b=gW+uGKep; 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 z61si7925906plb.19.2019.06.09.06.43.15; Sun, 09 Jun 2019 06:43:31 -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=@nexedi.com header.s=mandrill header.b=mNxlOB4T; dkim=pass header.i=@mandrillapp.com header.s=mandrill header.b=gW+uGKep; 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 S1729217AbfFINl5 (ORCPT + 99 others); Sun, 9 Jun 2019 09:41:57 -0400 Received: from mail177-30.suw61.mandrillapp.com ([198.2.177.30]:45435 "EHLO mail177-30.suw61.mandrillapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729117AbfFINll (ORCPT ); Sun, 9 Jun 2019 09:41:41 -0400 X-Greylist: delayed 1805 seconds by postgrey-1.27 at vger.kernel.org; Sun, 09 Jun 2019 09:41:41 EDT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=mandrill; d=nexedi.com; h=From:Subject:To:Cc:Message-Id:Date:MIME-Version:Content-Type:Content-Transfer-Encoding; i=kirr@nexedi.com; bh=twWGZqUu+cmhyITWS4AXJAv0lQzHiFdmzeNRXeiHF7Y=; b=mNxlOB4TgnzZBN3F0FaRthiimwZpd1qzLaBM2YKyRucxZ7IE3f8gwIdT1sAI+q0BM9Pi7TUDii4o /o8bGoOor2r8xzz7pTH6XwJgZ7bDiKiNXaJaG0wGhrVbfF0TtXlEU5RCV4WH1zw2UDSzZsqmR2bv POtzjx8s/NTA/nwumsg= Received: from pmta06.mandrill.prod.suw01.rsglab.com (127.0.0.1) by mail177-30.suw61.mandrillapp.com id hvk69a22rtkd for ; Sun, 9 Jun 2019 13:11:36 +0000 (envelope-from ) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; i=@mandrillapp.com; q=dns/txt; s=mandrill; t=1560085896; h=From : Subject : To : Cc : Message-Id : Date : MIME-Version : Content-Type : Content-Transfer-Encoding : From : Subject : Date : X-Mandrill-User : List-Unsubscribe; bh=twWGZqUu+cmhyITWS4AXJAv0lQzHiFdmzeNRXeiHF7Y=; b=gW+uGKepewx5kS93ecLgWQ+65hKFI0JDEYZdZU4ijZP0qxuwdadKCytGK6VkAXbirfyyqf DysNTbBMP+1Pt0hf3tZ1keK++piVn7C58hi/mU5mUAetDBzdXblcnZU9m3igGWOI8kCQRd77 oZuc8/JaYjoRVIqaeud1EGyKmMMgk= From: Kirill Smelkov Subject: [PATCH 4.9 0/2] Fix FUSE read/write deadlock on stream-like files Received: from [87.98.221.171] by mandrillapp.com id 2d7764899b7f40499310cc08b9cb4d68; Sun, 09 Jun 2019 13:11:36 +0000 X-Mailer: git-send-email 2.20.1 To: Cc: Sasha Levin , Greg Kroah-Hartman , Ben Hutchings , Linus Torvalds , Miklos Szeredi , , , Kirill Smelkov Message-Id: <20190609131113.2347-1-kirr@nexedi.com> X-Report-Abuse: Please forward a copy of this message, including all headers, to abuse@mandrill.com X-Report-Abuse: You can also report abuse here: http://mandrillapp.com/contact/abuse?id=31050260.2d7764899b7f40499310cc08b9cb4d68 X-Mandrill-User: md_31050260 Date: Sun, 09 Jun 2019 13:11:36 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello stable team, Please consider applying the following 2 patches to Linux-4.9 stable tree. The patches fix regression introduced in 3.14 where both read and write started to run under lock taken, which resulted in FUSE (and many other drivers) deadlocks for cases where stream-like files are used with read and write being run simultaneously. Please see complete problem description in upstream commit 10dce8af3422 ("fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock"). The actual FUSE fix (upstream commit bbd84f33652f "fuse: Add FOPEN_STREAM to use stream_open()") was merged into 5.2 with `Cc: stable@vger.kernel.org # v3.14+` mark and is already included into 5.1, 5.0 and 4.19 stable trees. However for some reason it is not (yet ?) included into 4.14, 4.9, 4.4, 3.18 and 3.16 trees. The patches fix a real problem into which my FUSE filesystem ran, and which also likely affects OSSPD (full details are in the patches description). Please consider including the fixes into 4.9 (as well as into other stable trees - I'm sending corresponding series separately - - one per tree). Thanks beforehand, Kirill P.S. the patches have been already a bit discussed in stable context some time ago: https://lore.kernel.org/linux-fsdevel/CAHk-=wgh234SyBG810=vB360PCzVkAhQRqGg8aFdATZd+daCFw@mail.gmail.com/ https://lore.kernel.org/linux-fsdevel/20190424183012.GB3798@deco.navytux.spb.ru/ https://lore.kernel.org/linux-fsdevel/20190424191652.GE3798@deco.navytux.spb.ru/ ... Kirill Smelkov (2): fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock fuse: Add FOPEN_STREAM to use stream_open() drivers/xen/xenbus/xenbus_dev_frontend.c | 2 +- fs/fuse/file.c | 4 +- fs/open.c | 18 ++ fs/read_write.c | 5 +- include/linux/fs.h | 4 + include/uapi/linux/fuse.h | 2 + scripts/coccinelle/api/stream_open.cocci | 363 +++++++++++++++++++++++ 7 files changed, 394 insertions(+), 4 deletions(-) create mode 100644 scripts/coccinelle/api/stream_open.cocci -- 2.20.1