Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp6653010iob; Wed, 11 May 2022 02:20:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyhQGJZ7I3+XBrILJpnlvJBJDx8c5r0nr2SxvLuc/3MxyGozt/QEdEdYY6eSUcd102/zCvy X-Received: by 2002:a17:907:2ce4:b0:6f4:3519:b771 with SMTP id hz4-20020a1709072ce400b006f43519b771mr21945953ejc.178.1652260834372; Wed, 11 May 2022 02:20:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652260834; cv=none; d=google.com; s=arc-20160816; b=JzOUKSncGRYLO7yUz4UiGyJmxJxqsl5jDJd6bmooOk3edUpJplTH7MbnqFKksWIsbM n5mlAiG4vfvkcz9tN1zLb4NLWLMRN0ptm13sXdz/NxgsLKmiO0KE+0ufsU7NP5167n+J GGgTwLqEAEaYq76UOVZrieK803kdiGkT9nG7fWEJaWt2JtScVBzRIX6iwq4lSNIJpWWm GvM+NYmhen/FrWhPokhSgel9KFDh4Ubnw5Ap8mzvpUwJ9SDEC9zSYhwcuN1ycOYOrVtT 1Hmr6Hj+0N7qHzWrCuwtN2gPYLzrHHXEJ+yTHg3+BHqgnOtKeCMTO1BeYDYCnygZ3s/i iFyg== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=7Ro2giJkuvuJdzvxf68e3H2xmYter4QpHE79FuLxIAc=; b=DTDPBby8ff+34niRTtlv0Rd91pelWCIUMLn7RaegqlGML0bMtmhIEcUrOMuUSqK2bR QarA3CilCTBwY7RG0u5SE0dVDTuBm0eBJPF82jaDs12eSolXCk2Z5P/4hJzcyatGQ3UR auG8si8xEkytTrYoiXhqyGYBzOBs25Wo9ZbrKT8PaEmYE1Pz6vYtvyFpYd7yY3ed5UZh h6PbCcu/yBLdPC2V3OSmU3Cr5wQjl/DFjCGMRwOkPUeTiUJelnYDUM9wrQ6OFK8NlId6 jJTgkF4aQ4r1vIsw1PMHW8tljeAyJbp/huJlD716OB+Q047BJtgfogrRfdP7oUIIlfO8 ZgaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=Au1CU6jR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dm21-20020a170907949500b006f3a88ccf8dsi1812871ejc.333.2022.05.11.02.20.08; Wed, 11 May 2022 02:20:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=Au1CU6jR; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229704AbiEKBbT (ORCPT + 99 others); Tue, 10 May 2022 21:31:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41778 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234894AbiEKBbP (ORCPT ); Tue, 10 May 2022 21:31:15 -0400 Received: from mail-pg1-x534.google.com (mail-pg1-x534.google.com [IPv6:2607:f8b0:4864:20::534]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4FC5A3A5DA for ; Tue, 10 May 2022 18:31:13 -0700 (PDT) Received: by mail-pg1-x534.google.com with SMTP id a19so260877pgw.6 for ; Tue, 10 May 2022 18:31:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=7Ro2giJkuvuJdzvxf68e3H2xmYter4QpHE79FuLxIAc=; b=Au1CU6jRpreJ8t+x3gPMPRVQje08IpwwfwVdGeqOXNoom/8XyrcCbThW+IE0O/XP4x X4gXGv2PvlgWuWnxUrl98Db7XwYlWhhuYU7PyejopoAQp/tlb0ci+Yq6YnMZtCIRisUH 7d8UJRehsjc4Tk8M8B9tiB2d400n/3ALaL23U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=7Ro2giJkuvuJdzvxf68e3H2xmYter4QpHE79FuLxIAc=; b=MvC0L8ZElQGNwy5k7+KJLePA1hmpUoBoThEnkyp6epQZvFgztwjNsr7sVQRadTe+83 8W8ywtmKSm25syvzQXdyhtYbfSUm08Yt37htUlTpFHFGND04b8bpX5zt/9yOuj5NRhWU u5LWewR99PMteLMA1uwayo0Yf+cLlrl1BBPDNuxjULfwpwovAOPxaakZpTVhHvUbMboc rRFTHxqWC7OWEdGoOdgHOvSGRQsYjbM5eY/GK5rZihstl6hg2MmynfUi2zdPEN56IQq0 ymMUy3gYPytnIyrom7afBB+0vdLWEG+4/mYGthx2gQ+HbSAYs6QOyxsRS9CmCmJpM1nS k+Cg== X-Gm-Message-State: AOAM531mkfCYmyHZ1FWDZzjlkvd0ridFWcoqqS8GqAKkQF9riqw5W/3K GG9uWIFapv3Y9iS9tsfETtI7wEldtVb81Q== X-Received: by 2002:a63:5c58:0:b0:3c2:f183:cbd7 with SMTP id n24-20020a635c58000000b003c2f183cbd7mr18502090pgm.33.1652232672791; Tue, 10 May 2022 18:31:12 -0700 (PDT) Received: from dlunevwfh.roam.corp.google.com (n122-107-196-14.sbr2.nsw.optusnet.com.au. [122.107.196.14]) by smtp.gmail.com with ESMTPSA id a4-20020a17090aa50400b001cd4989feecsm2494749pjq.56.2022.05.10.18.31.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 May 2022 18:31:12 -0700 (PDT) From: Daniil Lunev To: linux-fsdevel@vger.kernel.org Cc: fuse-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, Daniil Lunev , Alexander Viro , Miklos Szeredi Subject: [PATCH 0/2] Prevent re-use of FUSE superblock after force unmount Date: Wed, 11 May 2022 11:30:55 +1000 Message-Id: <20220511013057.245827-1-dlunev@chromium.org> X-Mailer: git-send-email 2.31.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Force unmount of fuse severes the connection between FUSE driver and its userspace counterpart. However, open file handles will prevent the superblock from being reclaimed. An attempt to remount the filesystem at the same endpoint will try re-using the superblock, if still present. Since the superblock re-use path doesn't go through the fs-specific superblock setup code, its state in FUSE case is already disfunctional, and that will prevent the mount from succeeding. The patchset adds a possibility to mark the superblock "defunc", which will prevent its re-use by the subsequent mounts, and uses the functionality in FUSE driver. Daniil Lunev (2): fs/super: Add a flag to mark super block defunc FUSE: Mark super block defunc on force unmount fs/fuse/inode.c | 11 +++++++++-- fs/super.c | 4 ++-- include/linux/fs.h | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) -- 2.31.0