Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp3490124rwb; Fri, 30 Sep 2022 04:30:07 -0700 (PDT) X-Google-Smtp-Source: AMsMyM72yANuvHPWlGEyHUeaseD0mBYyTY8jAgD63jq/hnDjWn8Rly9ajn0yNvG57kGG8AbdnsOO X-Received: by 2002:a17:902:d2c5:b0:176:d0b0:bf53 with SMTP id n5-20020a170902d2c500b00176d0b0bf53mr8482085plc.88.1664537406642; Fri, 30 Sep 2022 04:30:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664537406; cv=none; d=google.com; s=arc-20160816; b=drydtHmVEueymGgFO65M6YkDYKsLvqsLJ/Hs32N0V7cZy4OmDyF7ct1BlGOfIQNh2z mavL2bR2kFYhrCeLyUAUqeZFOPIHLA1RhDgm9CQZC35VxFpWnet68+lVKRkijxeg5Uz7 MJQBsBcEBwcU6ttlzj3pNeha4Hl1NQGWYO/AcYkn5mG+3GoRfeP/WitbF9P2IkvDb+eV qejkqeD6UPe0DIqAlEpIo5OTGOj67cM6xMtxn95WjijTuWSigdoaRhkMUY0qMu6g/uy6 +nsd83cFDwvqMZHm9dNtij7Rjqs1b9LrbuGafhQnwlec5aIH0kAzN/COTRTi3ucJ2coY 0jtA== 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=aFvbVYyPuMUKTBg5eljSoDg5XwB2l/jtCVwbBW5xTg0=; b=YHWTErnkAxubYapebrnp1nxTDZqQyosriPYiBTcPCO8QivUNtQau6QoM2xPFH56dow UWHQbSUlKoUiaJWoHYcJ7sXfa0uqnDbXfZh3EzC4MjD2/w9iyZ7yDG0XF6DVGTJUfehq NuV91SHONlgdiC4EaMZCOz7VetoTYvBx897SmeUfbl0NsPXG+4UFNn+CBr4CPPRN0O32 vHk/Lzi8c/GbCr8Bmbt7R5qqU+TpRG2yGR4v7mnq1ro745fpLYd/JCE/+XQDFnC3QVJY YYnH5XkogeILIaq4Y6YalLEjc7yf2x0Knhn+3MOUMWp0tjmzCoAcKICkgS+FIXj0H8sv Jp0w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=qclGvuAa; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l8-20020a655608000000b0043cb40e4696si1259969pgs.692.2022.09.30.04.29.49; Fri, 30 Sep 2022 04:30:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-ext4-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=@kernel.org header.s=k20201202 header.b=qclGvuAa; spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231805AbiI3L04 (ORCPT + 99 others); Fri, 30 Sep 2022 07:26:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52552 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230085AbiI3L02 (ORCPT ); Fri, 30 Sep 2022 07:26:28 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BBC56FAEA; Fri, 30 Sep 2022 04:18:47 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id AC356B827AA; Fri, 30 Sep 2022 11:18:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5374EC433C1; Fri, 30 Sep 2022 11:18:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664536724; bh=qW5czRWn4GLiEtwmzJqFOMVb5w3oIFlZuNEbzaPShnI=; h=From:To:Cc:Subject:Date:From; b=qclGvuAaez5oX3gT5MUceMEYs9CNEX5R4R1bJF3WZ+L0+aYeWJ84DC5WTsT2xi8ia U6cqxRjw80Txiw9vnu1hf973zEHsjPBWdl8q8vj7PSw8GbhVSfgi/4a5NVCGKZOFIU BpT/1wGxzvsMtbjFGbXSIjk1VDdol6BqOFBhGa/z+KyWOLCN3krK9RFIpF/7dg0cLx p6ye45BNLcd1z55bJMnBvTPVQcy4ZQA0nChO3ZKY63MmuWekHHjZTQnp5zC7tNugQh FNt3Gv9RE0QvUuoMNl57bfwV9VVo6BLFr0yJH7M/cCMBzImSL2XuPSc1fpR8Xthb0H z2UeJq0yMeptA== From: Jeff Layton To: tytso@mit.edu, adilger.kernel@dilger.ca, djwong@kernel.org, david@fromorbit.com, trondmy@hammerspace.com, neilb@suse.de, viro@zeniv.linux.org.uk, zohar@linux.ibm.com, xiubli@redhat.com, chuck.lever@oracle.com, lczerner@redhat.com, jack@suse.cz, bfields@fieldses.org, brauner@kernel.org, fweimer@redhat.com Cc: linux-btrfs@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, ceph-devel@vger.kernel.org, linux-ext4@vger.kernel.org, linux-nfs@vger.kernel.org, linux-xfs@vger.kernel.org Subject: [PATCH v6 0/9] vfs/nfsd: clean up handling of i_version counter Date: Fri, 30 Sep 2022 07:18:31 -0400 Message-Id: <20220930111840.10695-1-jlayton@kernel.org> X-Mailer: git-send-email 2.37.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS 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-ext4@vger.kernel.org v6: add support for STATX_ATTR_VERSION_MONOTONIC add patch to expose i_version counter to userland patches to update times/version after copying write data An updated set of i_version handling changes! I've dropped the earlier ext4 patches since Ted has picked up the relevant ext4 ones. This set is based on linux-next, to make sure we don't collide with the statx DIO alignment patches, and some other i_version cleanups that are in flight. I'm hoping those land in 6.1. There are a few changes since v5, mostly centered around adding STATX_ATTR_VERSION_MONOTONIC. I've also re-added the patch to expose STATX_VERSION to userland via statx. What I'm proposing should now (mostly) conform to the semantics I layed out in the manpage patch I sent recently [1]. Finally, I've added two patches to make __generic_file_write_iter and ext4 update the c/mtime after copying file data instead of before, which Neil pointed out makes for better cache-coherency handling. Those should take care of ext4 and tmpfs. xfs and btrfs will need to make the same changes. One thing I'm not sure of is what we should do if update_times fails after an otherwise successful write. Should we just ignore that and move on (and maybe WARN)? Return an error? Set a writeback error? What's the right recourse there? I'd like to go ahead and get the first 6 patches from this series into linux-next fairly soon, so if anyone has objections, please speak up! [1]: https://lore.kernel.org/linux-nfs/20220928134200.28741-1-jlayton@kernel.org/T/#u Jeff Layton (9): iversion: move inode_query_iversion to libfs.c iversion: clarify when the i_version counter must be updated vfs: plumb i_version handling into struct kstat nfs: report the inode version in getattr if requested ceph: report the inode version in getattr if requested nfsd: use the getattr operation to fetch i_version vfs: expose STATX_VERSION to userland vfs: update times after copying data in __generic_file_write_iter ext4: update times after I/O in write codepaths fs/ceph/inode.c | 16 +++++++++---- fs/ext4/file.c | 20 +++++++++++++--- fs/libfs.c | 36 +++++++++++++++++++++++++++++ fs/nfs/export.c | 7 ------ fs/nfs/inode.c | 10 ++++++-- fs/nfsd/nfs4xdr.c | 4 +++- fs/nfsd/nfsfh.c | 40 ++++++++++++++++++++++++++++++++ fs/nfsd/nfsfh.h | 29 +---------------------- fs/nfsd/vfs.h | 7 +++++- fs/stat.c | 7 ++++++ include/linux/exportfs.h | 1 - include/linux/iversion.h | 48 ++++++++------------------------------- include/linux/stat.h | 2 +- include/uapi/linux/stat.h | 6 +++-- mm/filemap.c | 17 ++++++++++---- samples/vfs/test-statx.c | 8 +++++-- 16 files changed, 163 insertions(+), 95 deletions(-) -- 2.37.3