{"id":2230328,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2230328/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ext4/patch/177747215418.4110156.14001316870433107933.stgit@frogsfrogsfrogs/","project":{"id":8,"url":"http://patchwork.ozlabs.org/api/1.1/projects/8/?format=json","name":"Linux ext4 filesystem development","link_name":"linux-ext4","list_id":"linux-ext4.vger.kernel.org","list_email":"linux-ext4@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<177747215418.4110156.14001316870433107933.stgit@frogsfrogsfrogs>","date":"2026-04-29T14:59:08","name":"[02/10] fuse2fs: skip permission checking on utimens when iomap is enabled","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"e0ce20978d15450088d479234e7e0509aaf58240","submitter":{"id":77032,"url":"http://patchwork.ozlabs.org/api/1.1/people/77032/?format=json","name":"Darrick J. Wong","email":"djwong@kernel.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-ext4/patch/177747215418.4110156.14001316870433107933.stgit@frogsfrogsfrogs/mbox/","series":[{"id":502091,"url":"http://patchwork.ozlabs.org/api/1.1/series/502091/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-ext4/list/?series=502091","date":"2026-04-29T14:59:24","name":"[01/10] fuse2fs: add strictatime/lazytime mount options","version":1,"mbox":"http://patchwork.ozlabs.org/series/502091/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2230328/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2230328/checks/","tags":{},"headers":{"Return-Path":"\n <SRS0=3IVa=C4=vger.kernel.org=linux-ext4+bounces-16214-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=okfpoFRk;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=3iva=c4=vger.kernel.org=linux-ext4+bounces-16214-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c0a:e001:db::12fc:5321\"\n arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=okfpoFRk;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-16214-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"okfpoFRk\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5LCL6pKPz1yHX\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 01:03:10 +1000 (AEST)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4g5LCL6LLHz4wHs\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 01:03:10 +1000 (AEST)","by gandalf.ozlabs.org (Postfix)\n\tid 4g5LCL6H02z4wM1; Thu, 30 Apr 2026 01:03:10 +1000 (AEST)","from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4g5LCF4Gfnz4wHs\n\tfor <patchwork-incoming@ozlabs.org>; Thu, 30 Apr 2026 01:03:05 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 13AAC3014977\n\tfor <patchwork-incoming@ozlabs.org>; Wed, 29 Apr 2026 14:59:11 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 691013382C7;\n\tWed, 29 Apr 2026 14:59:09 +0000 (UTC)","from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 2BCA3261B92;\n\tWed, 29 Apr 2026 14:59:09 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 057C2C19425;\n\tWed, 29 Apr 2026 14:59:09 +0000 (UTC)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1777474990; cv=pass;\n\tb=FgX8XMrmFOCemWcLPRxpUS5B/WQmOI5BquqVPtF5UFpjYqFovyBLzWnZ7upuwMY6bwB/XhoJcTFQjPb4948LHIzgkU0epnpNf1C4gGsAW2gWmGyp9Prgh2Tu5YbaZJMgdwFQEAz0EuH8K8TFIFjpHZDayN6iqfgKnNVNuIaavQeajwLDQPVG6W7TwOmVqSKv3TdHYBdU/b/6av2SZnlrrjv8PmHNB/raGIQ7maIW7ylrJkzGtkOpbDUB9qjXx4WMr1eAfNEeawQubY+NHYsur0YBk3uRJuopqGTco7DjKVfu8PtT6Kxcz9Qi+UeVEWj5OqQO83gWDkYqOfGmn9Lz0A==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1777474749; cv=none;\n b=j0H0V0bLS9FYOT6Y9c1H/9J2pOdQlHZg0qLrNBi0fuYFlGHMkFVJbD7eM80aPMkp0EfdcPASSSIhw2E2LcWZ2pXu5FHQ1huXVpr+Gzd/61f+ypVTRMpnhhrG8I2NKbVmgvQcDzCCjmCaMpQEAArYMmyTLynGqPm3iYwaT7ldmA0="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1777474990; c=relaxed/relaxed;\n\tbh=Zk040cagEfg4nwNpLXvzbSqIJTEdgQbyeiCOqM+gG9Y=;\n\th=Date:Subject:From:To:Cc:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=yq9SQwpee14UHG3C+w1POxW1xQlfoBufYvn35ZyGVPsz+Ob2GqTdVMRouf2Yk5CAhtPxX/s9hEFbHDneSgwYZG6HYzPzwlVecnbnS8ILR386eHXrJfHNfaEvYFa90o4I6xdi81IEHtzoOZEtSWJCpLD8L5OGZ+fooIwuZ13hLm5duY9qZgx26KD3X2j8n2RbzPVtSdv5gnnovlfZjCJk085rls/Em/o3heotWPNT7q9YncJAN356maF1rNoUQHSmcppYwLUqxCEiw1tgAaGTi4i9ghNm07QMc7RFrkt7g1rKtJ9A7jf9VTJuFYeIhT7jTsNt8jBh5oyXAj1DJWJbng==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1777474749; c=relaxed/simple;\n\tbh=0e+WKfynnsmHZf/HwaxlXjOzFJqq93oYsiEXz8JKHOg=;\n\th=Date:Subject:From:To:Cc:Message-ID:In-Reply-To:References:\n\t MIME-Version:Content-Type;\n b=HExP7172QxH3/ly9c+aRj7BtlUIWq6WZWaWp8Mx2StdESxVRfpYAp3Gs06WA8f67XjzwTnllczlzaHPHPjTYp9NLr5r68YDhyB7uX1SKHrG8fyT4eSJXgmlw3wy3hERbKWGdAmkXppb1Zp3bBIlcTIRfeOu+8wmn9OW2dmQZtpM="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org;\n dkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=okfpoFRk; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-ext4+bounces-16214-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=okfpoFRk; arc=none smtp.client-ip=10.30.226.201"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1777474749;\n\tbh=0e+WKfynnsmHZf/HwaxlXjOzFJqq93oYsiEXz8JKHOg=;\n\th=Date:Subject:From:To:Cc:In-Reply-To:References:From;\n\tb=okfpoFRk7nF5xM2/6Sduwx/z94e9wLErYxC8c8F38tbIPSMGldQHClGyecoAezbfl\n\t AJkldSaoTVCPUKFi2rR79IiVXJGVS0H1TFXfdb8BjjPpFNhqG8qQ4lDJXDvTkjSdOg\n\t aFka3g06PyHlFvcu5ozGM9iuPZHDrguuTK8SSqCjKZo5K/ypqx8cgPqKAn2d/Cj14H\n\t mtIsfy3nvaQoIFdKxjK7UUjn3NNgTOafyZ+DNC3xtjX4Xq87atqY85JU2SVmw9qKQ9\n\t p2t3o+N833W7NjW77gEuoX9Xjti5vz0vYA64HIpWU/blprvIBQaekH7ptz2zXOzcmn\n\t 7eUVneEdmMLrg==","Date":"Wed, 29 Apr 2026 07:59:08 -0700","Subject":"[PATCH 02/10] fuse2fs: skip permission checking on utimens when iomap\n is enabled","From":"\"Darrick J. Wong\" <djwong@kernel.org>","To":"tytso@mit.edu","Cc":"bernd@bsbernd.com, miklos@szeredi.hu, linux-ext4@vger.kernel.org,\n neal@gompa.dev, linux-fsdevel@vger.kernel.org, fuse-devel@lists.linux.dev,\n joannelkoong@gmail.com","Message-ID":"<177747215418.4110156.14001316870433107933.stgit@frogsfrogsfrogs>","In-Reply-To":"<177747215344.4110156.17216553139316774040.stgit@frogsfrogsfrogs>","References":"<177747215344.4110156.17216553139316774040.stgit@frogsfrogsfrogs>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tMAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=disabled\n\tversion=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"},"content":"From: Darrick J. Wong <djwong@kernel.org>\n\nWhen iomap is enabled, the kernel is in charge of enforcing permissions\nchecks on timestamp updates for files.  We needn't do that in userspace\nanymore.\n\nSigned-off-by: \"Darrick J. Wong\" <djwong@kernel.org>\n---\n fuse4fs/fuse4fs.c |   11 +++++++----\n misc/fuse2fs.c    |   11 +++++++----\n 2 files changed, 14 insertions(+), 8 deletions(-)","diff":"diff --git a/fuse4fs/fuse4fs.c b/fuse4fs/fuse4fs.c\nindex 6e5683dba4c918..7163c440c9ee66 100644\n--- a/fuse4fs/fuse4fs.c\n+++ b/fuse4fs/fuse4fs.c\n@@ -5555,13 +5555,16 @@ static int fuse4fs_utimens(struct fuse4fs *ff, const struct fuse_ctx *ctxt,\n \n \t/*\n \t * ext4 allows timestamp updates of append-only files but only if we're\n-\t * setting to current time\n+\t * setting to current time.  If iomap is enabled, the kernel does the\n+\t * permission checking for timestamp updates; skip the access check.\n \t */\n \tif (aact == TA_NOW && mact == TA_NOW)\n \t\taccess |= A_OK;\n-\tret = fuse4fs_inum_access(ff, ctxt, ino, access);\n-\tif (ret)\n-\t\treturn ret;\n+\tif (!fuse4fs_iomap_enabled(ff)) {\n+\t\tret = fuse4fs_inum_access(ff, ctxt, ino, access);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\t}\n \n \tif (aact != TA_OMIT)\n \t\tEXT4_INODE_SET_XTIME(i_atime, &atime, inode);\ndiff --git a/misc/fuse2fs.c b/misc/fuse2fs.c\nindex 02ca7ade4aaad6..670411c1117e44 100644\n--- a/misc/fuse2fs.c\n+++ b/misc/fuse2fs.c\n@@ -4939,13 +4939,16 @@ static int op_utimens(const char *path, const struct timespec ctv[2],\n \n \t/*\n \t * ext4 allows timestamp updates of append-only files but only if we're\n-\t * setting to current time\n+\t * setting to current time.  If iomap is enabled, the kernel does the\n+\t * permission checking for timestamp updates; skip the access check.\n \t */\n \tif (ctv[0].tv_nsec == UTIME_NOW && ctv[1].tv_nsec == UTIME_NOW)\n \t\taccess |= A_OK;\n-\tret = check_inum_access(ff, ino, access);\n-\tif (ret)\n-\t\tgoto out;\n+\tif (!fuse2fs_iomap_enabled(ff)) {\n+\t\tret = check_inum_access(ff, ino, access);\n+\t\tif (ret)\n+\t\t\tgoto out;\n+\t}\n \n \terr = fuse2fs_read_inode(fs, ino, &inode);\n \tif (err) {\n","prefixes":["02/10"]}