All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@kernel.org>
To: "Jeremy Kerr" <jk@ozlabs.org>, "Arnd Bergmann" <arnd@arndb.de>,
	"Michael Ellerman" <mpe@ellerman.id.au>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Christophe Leroy" <christophe.leroy@csgroup.eu>,
	"Heiko Carstens" <hca@linux.ibm.com>,
	"Vasily Gorbik" <gor@linux.ibm.com>,
	"Alexander Gordeev" <agordeev@linux.ibm.com>,
	"Christian Borntraeger" <borntraeger@linux.ibm.com>,
	"Sven Schnelle" <svens@linux.ibm.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Arve Hjønnevåg" <arve@android.com>,
	"Todd Kjos" <tkjos@android.com>,
	"Martijn Coenen" <maco@android.com>,
	"Joel Fernandes" <joel@joelfernandes.org>,
	"Christian Brauner" <brauner@kernel.org>,
	"Carlos Llamas" <cmllamas@google.com>,
	"Suren Baghdasaryan" <surenb@google.com>,
	"Dennis Dalessandro" <dennis.dalessandro@cornelisnetworks.com>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	"Leon Romanovsky" <leon@kernel.org>,
	"Brad Warrum" <bwarrum@linux.ibm.com>,
	"Ritu Agarwal" <rituagar@linux.ibm.com>,
	"Eric Van Hensbergen" <ericvh@kernel.org>,
	"Latchesar Ionkov" <lucho@ionkov.net>,
	"Dominique Martinet" <asmadeus@codewreck.org>,
	"Christian Schoenebeck" <linux_oss@crudebyte.com>,
	"David Sterba" <dsterba@suse.com>,
	"David Howells" <dhowells@redhat.com>,
	"Marc Dionne" <marc.dionne@auristor.com>,
	"Alexander Viro" <viro@zeniv.linux.org.uk>,
	"Ian Kent" <raven@themaw.net>,
	"Luis de Bethencourt" <luisbg@kernel.org>,
	"Salah Triki" <salah.triki@gmail.com>,
	"Tigran A. Aivazian" <aivazian.tigran@gmail.com>,
	"Eric Biederman" <ebiederm@xmission.com>,
	"Kees Cook" <keescook@chromium.org>, "Chris Mason" <clm@fb.com>,
	"Josef Bacik" <josef@toxicpanda.com>,
	"Xiubo Li" <xiubli@redhat.com>,
	"Ilya Dryomov" <idryomov@gmail.com>,
	"Jan Harkes" <jaharkes@cs.cmu.edu>,
	coda@cs.cmu.edu, "Joel Becker" <jlbec@evilplan.org>,
	"Christoph Hellwig" <hch@lst.de>,
	"Nicolas Pitre" <nico@fluxnic.net>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	"Tyler Hicks" <code@tyhicks.com>,
	"Ard Biesheuvel" <ardb@kernel.org>,
	"Gao Xiang" <xiang@kernel.org>, "Chao Yu" <chao@kernel.org>,
	"Yue Hu" <huyue2@coolpad.com>,
	"Jeffle Xu" <jefflexu@linux.alibaba.com>,
	"Namjae Jeon" <linkinjeon@kernel.org>,
	"Sungjong Seo" <sj1557.seo@samsung.com>,
	"Jan Kara" <jack@suse.com>, "Theodore Ts'o" <tytso@mit.edu>,
	"Andreas Dilger" <adilger.kernel@dilger.ca>,
	"Jaegeuk Kim" <jaegeuk@kernel.org>,
	"OGAWA Hirofumi" <hirofumi@mail.parknet.co.jp>,
	"Miklos Szeredi" <miklos@szeredi.hu>,
	"Bob Peterson" <rpeterso@redhat.com>,
	"Andreas Gruenbacher" <agruenba@redhat.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Anton Ivanov" <anton.ivanov@cambridgegreys.com>,
	"Johannes Berg" <johannes@sipsolutions.net>,
	"Mikulas Patocka" <mikulas@artax.karlin.mff.cuni.cz>,
	"Mike Kravetz" <mike.kravetz@oracle.com>,
	"Muchun Song" <muchun.song@linux.dev>,
	"David Woodhouse" <dwmw2@infradead.org>,
	"Dave Kleikamp" <shaggy@kernel.org>, "Tejun Heo" <tj@kernel.org>,
	"Trond Myklebust" <trond.myklebust@hammerspace.com>,
	"Anna Schumaker" <anna@kernel.org>,
	"Chuck Lever" <chuck.lever@oracle.com>,
	"Ryusuke Konishi" <konishi.ryusuke@gmail.com>,
	"Anton Altaparmakov" <anton@tuxera.com>,
	"Konstantin Komarov" <almaz.alexandrovich@paragon-software.com>,
	"Mark Fasheh" <mark@fasheh.com>,
	"Joseph Qi" <joseph.qi@linux.alibaba.com>,
	"Bob Copeland" <me@bobcopeland.com>,
	"Mike Marshall" <hubcap@omnibond.com>,
	"Martin Brandenburg" <martin@omnibond.com>,
	"Luis Chamberlain" <mcgrof@kernel.org>,
	"Iurii Zaikin" <yzaikin@google.com>,
	"Tony Luck" <tony.luck@intel.com>,
	"Guilherme G. Piccoli" <gpiccoli@igalia.com>,
	"Anders Larsen" <al@alarsen.net>,
	"Steve French" <sfrench@samba.org>,
	"Paulo Alcantara" <pc@manguebit.com>,
	"Ronnie Sahlberg" <lsahlber@redhat.com>,
	"Shyam Prasad N" <sprasad@microsoft.com>,
	"Tom Talpey" <tom@talpey.com>,
	"Sergey Senozhatsky" <senozhatsky@chromium.org>,
	"Phillip Lougher" <phillip@squashfs.org.uk>,
	"Steven Rostedt" <rostedt@goodmis.org>,
	"Masami Hiramatsu" <mhiramat@kernel.org>,
	"Evgeniy Dushistov" <dushistov@mail.ru>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Darrick J. Wong" <djwong@kernel.org>,
	"Damien Le Moal" <dlemoal@kernel.org>,
	"Naohiro Aota" <naohiro.aota@wdc.com>,
	"Johannes Thumshirn" <jth@kernel.org>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Andrii Nakryiko" <andrii@kernel.org>,
	"Martin KaFai Lau" <martin.lau@linux.dev>,
	"Song Liu" <song@kernel.org>, "Yonghong Song" <yhs@fb.com>,
	"John Fastabend" <john.fastabend@gmail.com>,
	"KP Singh" <kpsingh@kernel.org>,
	"Stanislav Fomichev" <sdf@google.com>,
	"Hao Luo" <haoluo@google.com>, "Jiri Olsa" <jolsa@kernel.org>,
	"Hugh Dickins" <hughd@google.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"John Johansen" <john.johansen@canonical.com>,
	"Paul Moore" <paul@paul-moore.com>,
	"James Morris" <jmorris@namei.org>,
	"Serge E. Hallyn" <serge@hallyn.com>,
	"Stephen Smalley" <stephen.smalley.work@gmail.com>,
	"Eric Paris" <eparis@parisplace.org>,
	"Juergen Gross" <jgross@suse.com>,
	"Ruihan Li" <lrh2000@pku.edu.cn>,
	"Laurent Pinchart" <laurent.pinchart+renesas@ideasonboard.com>,
	"Wolfram Sang" <wsa+renesas@sang-engineering.com>,
	"Udipto Goswami" <quic_ugoswami@quicinc.com>,
	"Linyu Yuan" <quic_linyyuan@quicinc.com>,
	"John Keeping" <john@keeping.me.uk>,
	"Andrzej Pietrasiewicz" <andrzej.p@collabora.com>,
	"Dan Carpenter" <error27@gmail.com>,
	"Yuta Hayama" <hayama@lineo.co.jp>,
	"Jozef Martiniak" <jomajm@gmail.com>,
	"Jens Axboe" <axboe@kernel.dk>,
	"Alan Stern" <stern@rowland.harvard.edu>,
	"Sandeep Dhavale" <dhavale@google.com>,
	"Dave Chinner" <dchinner@redhat.com>,
	"Johannes Weiner" <hannes@cmpxchg.org>,
	ZhangPeng <zhangpeng362@huawei.com>,
	"Viacheslav Dubeyko" <slava@dubeyko.com>,
	"Tetsuo Handa" <penguin-kernel@I-love.SAKURA.ne.jp>,
	"Aditya Garg" <gargaditya08@live.com>,
	"Erez Zadok" <ezk@cs.stonybrook.edu>,
	"Yifei Liu" <yifeliu@cs.stonybrook.edu>,
	"Yu Zhe" <yuzhe@nfschina.com>,
	"Matthew Wilcox (Oracle)" <willy@infradead.org>,
	"Oleg Kanatov" <okanatov@gmail.com>,
	"Dr. David Alan Gilbert" <linux@treblig.org>,
	"Jiangshan Yi" <yijiangshan@kylinos.cn>,
	"xu xin" <cgel.zte@gmail.com>, "Stefan Roesch" <shr@devkernel.io>,
	"Zhihao Cheng" <chengzhihao1@huawei.com>,
	"Liam R. Howlett" <Liam.Howlett@Oracle.com>,
	"Alexey Dobriyan" <adobriyan@gmail.com>,
	"Minghao Chi" <chi.minghao@zte.com.cn>,
	"Seth Forshee" <sforshee@digitalocean.com>,
	"Zeng Jingxiang" <linuszeng@tencent.com>,
	"Bart Van Assche" <bvanassche@acm.org>,
	"Mimi Zohar" <zohar@linux.ibm.com>,
	"Roberto Sassu" <roberto.sassu@huawei.com>,
	"Zhang Yi" <yi.zhang@huawei.com>, "Tom Rix" <trix@redhat.com>,
	"Fabio M. De Francesco" <fmdefrancesco@gmail.com>,
	"Chen Zhongjin" <chenzhongjin@huawei.com>,
	"Zhengchao Shao" <shaozhengchao@huawei.com>,
	"Rik van Riel" <riel@surriel.com>,
	"Jingyu Wang" <jingyuwang_vip@163.com>,
	"Hangyu Hua" <hbh25y@gmail.com>,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-rdma@vger.kernel.org,
	linux-usb@vger.kernel.org, v9fs@lists.linux.dev,
	linux-fsdevel@vger.kernel.org, linux-afs@lists.infradead.org,
	autofs@vger.kernel.org, linux-mm@kvack.org,
	linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org,
	codalist@coda.cs.cmu.edu, ecryptfs@vger.kernel.org,
	linux-efi@vger.kernel.org, linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net, cluster-devel@redhat.com,
	linux-um@lists.infradead.org, linux-mtd@lists.infradead.org,
	jfs-discussion@lists.sourceforge.net, linux-nfs@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	linux-ntfs-dev@lists.sourceforge.net, ntfs3@lists.linux.dev,
	ocfs2-devel@oss.oracle.com,
	linux-karma-devel@lists.sourceforge.net,
	devel@lists.orangefs.org, linux-unionfs@vger.kernel.org,
	linux-hardening@vger.kernel.org, reiserfs-devel@vger.kernel.org,
	linux-cifs@vger.kernel.org, samba-technical@lists.samba.org,
	linux-trace-kernel@vger.kernel.org, linux-xfs@vger.kernel.org,
	bpf@vger.kernel.org, netdev@vger.kernel.org,
	apparmor@lists.ubuntu.com, linux-security-module@vger.kernel.org,
	selinux@vger.kernel.org
Subject: [PATCH 01/79] fs: add ctime accessors infrastructure
Date: Wed, 21 Jun 2023 10:45:06 -0400	[thread overview]
Message-ID: <20230621144507.55591-2-jlayton@kernel.org> (raw)
In-Reply-To: <20230621144507.55591-1-jlayton@kernel.org>

struct timespec64 has unused bits in the tv_nsec field that can be used
for other purposes. In future patches, we're going to change how the
inode->i_ctime is accessed in certain inodes in order to make use of
them. In order to do that safely though, we'll need to eradicate raw
accesses of the inode->i_ctime field from the kernel.

Add new accessor functions for the ctime that we can use to replace them.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 fs/inode.c         | 16 ++++++++++++++
 include/linux/fs.h | 53 +++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 68 insertions(+), 1 deletion(-)

diff --git a/fs/inode.c b/fs/inode.c
index d37fad91c8da..c005e7328fbb 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -2499,6 +2499,22 @@ struct timespec64 current_time(struct inode *inode)
 }
 EXPORT_SYMBOL(current_time);
 
+/**
+ * inode_ctime_set_current - set the ctime to current_time
+ * @inode: inode
+ *
+ * Set the inode->i_ctime to the current value for the inode. Returns
+ * the current value that was assigned to i_ctime.
+ */
+struct timespec64 inode_ctime_set_current(struct inode *inode)
+{
+	struct timespec64 now = current_time(inode);
+
+	inode_set_ctime(inode, now);
+	return now;
+}
+EXPORT_SYMBOL(inode_ctime_set_current);
+
 /**
  * in_group_or_capable - check whether caller is CAP_FSETID privileged
  * @idmap:	idmap of the mount @inode was found from
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 6867512907d6..9afb30606373 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1474,7 +1474,58 @@ static inline bool fsuidgid_has_mapping(struct super_block *sb,
 	       kgid_has_mapping(fs_userns, kgid);
 }
 
-extern struct timespec64 current_time(struct inode *inode);
+struct timespec64 current_time(struct inode *inode);
+struct timespec64 inode_ctime_set_current(struct inode *inode);
+
+/**
+ * inode_ctime_peek - fetch the current ctime from the inode
+ * @inode: inode from which to fetch ctime
+ *
+ * Grab the current ctime from the inode and return it.
+ */
+static inline struct timespec64 inode_ctime_peek(const struct inode *inode)
+{
+	return inode->i_ctime;
+}
+
+/**
+ * inode_ctime_set - set the ctime in the inode to the given value
+ * @inode: inode in which to set the ctime
+ * @ts: timespec value to set the ctime
+ *
+ * Set the ctime in @inode to @ts.
+ */
+static inline struct timespec64 inode_ctime_set(struct inode *inode, struct timespec64 ts)
+{
+	inode->i_ctime = ts;
+	return ts;
+}
+
+/**
+ * inode_ctime_set_sec - set only the tv_sec field in the inode ctime
+ * @inode: inode in which to set the ctime
+ * @sec:  value to set the tv_sec field
+ *
+ * Set the sec field in the ctime. Returns @sec.
+ */
+static inline time64_t inode_ctime_set_sec(struct inode *inode, time64_t sec)
+{
+	inode->i_ctime.tv_sec = sec;
+	return sec;
+}
+
+/**
+ * inode_ctime_set_nsec - set only the tv_nsec field in the inode ctime
+ * @inode: inode in which to set the ctime
+ * @nsec:  value to set the tv_nsec field
+ *
+ * Set the nsec field in the ctime. Returns @nsec.
+ */
+static inline long inode_ctime_set_nsec(struct inode *inode, long nsec)
+{
+	inode->i_ctime.tv_nsec = nsec;
+	return nsec;
+}
 
 /*
  * Snapshotting support.
-- 
2.41.0


WARNING: multiple messages have this Message-ID (diff)
From: Jeff Layton <jlayton@kernel.org>
To: "Jeremy Kerr" <jk@ozlabs.org>, "Arnd Bergmann" <arnd@arndb.de>,
	"Michael Ellerman" <mpe@ellerman.id.au>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Christophe Leroy" <christophe.leroy@csgroup.eu>,
	"Heiko Carstens" <hca@linux.ibm.com>,
	"Vasily Gorbik" <gor@linux.ibm.com>,
	"Alexander Gordeev" <agordeev@linux.ibm.com>,
	"Christian Borntraeger" <borntraeger@linux.ibm.com>,
	"Sven Schnelle" <svens@linux.ibm.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Arve Hjønnevåg" <arve@android.com>,
	"Todd Kjos" <tkjos@android.com>,
	"Martijn Coenen" <maco@android.com>,
	"Joel Fernandes" <joel@joelfernandes.org>,
	"Christian Brauner" <brauner@kernel.org>,
	"Carlos Llamas" <cmllamas@google.com>,
	"Suren Baghdasaryan" <surenb@google.com>,
	"Dennis Dalessandro" <dennis.dalessandro@cornelisnetworks.com>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	"Leon Romanovsky" <leon@kernel.org>,
	"Brad Warrum" <bwarrum@linux.ibm.com>,
	"Ritu Agarwal" <rituagar@linux.ibm.com>,
	"Eric Van Hensbergen" <ericvh@kernel.org>,
	"Latchesar Ionkov" <lucho@ionkov.net>,
	"Dominique Martinet" <asmadeus@codewreck.org>,
	"Christian Schoenebeck" <linux_oss@crudebyte.com>,
	"David Sterba" <dsterba@suse.com>,
	"David Howells" <dhowells@redhat.com>,
	"Marc Dionne" <marc.dionne@auristor.com>,
	"Alexander Viro" <viro@zeniv.linux.org.uk>,
	"Ian Kent" <raven@themaw.net>,
	"Luis de Bethencourt" <luisbg@kernel.org>,
	"Salah Triki" <salah.triki@gmail.com>,
	"Tigran A. Aivazian" <aivazian.tigran@gmail.com>,
	"Eric Biederman" <ebiederm@xmission.com>,
	"Kees Cook" <keescook@chromium.org>, "Chris Mason" <clm@fb.com>,
	"Josef Bacik" <josef@toxicpanda.com>,
	"Xiubo Li" <xiubli@redhat.com>,
	"Ilya Dryomov" <idryomov@gmail.com>,
	"Jan Harkes" <jaharkes@cs.cmu.edu>,
	coda@cs.cmu.edu, "Joel Becker" <jlbec@evilplan.org>,
	"Christoph Hellwig" <hch@lst.de>,
	"Nicolas Pitre" <nico@fluxnic.net>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	"Tyler Hicks" <code@tyhicks.com>,
	"Ard Biesheuvel" <ardb@kernel.org>,
	"Gao Xiang" <xiang@kernel.org>, "Chao Yu" <chao@kernel.org>,
	"Yue Hu" <huyue2@coolpad.com>,
	"Jeffle Xu" <jefflexu@linux.alibaba.com>,
	"Namjae Jeon" <linkinjeon@kernel.org>,
	"Sungjong Seo" <sj1557.seo@samsung.com>,
	"Jan Kara" <jack@suse.com>, "Theodore Ts'o" <tytso@mit.edu>,
	"Andreas Dilger" <adilger.kernel@dilger.ca>,
	"Jaegeuk Kim" <jaegeuk@kernel.org>,
	"OGAWA Hirofumi" <hirofumi@mail.parknet.co.jp>,
	"Miklos Szeredi" <miklos@szeredi.hu>,
	"Bob Peterson" <rpeterso@redhat.com>,
	"Andreas Gruenbacher" <agruenba@redhat.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Anton Ivanov" <anton.ivanov@cambridgegreys.com>,
	"Johannes Berg" <johannes@sipsolutions.net>,
	"Mikulas Patocka" <mikulas@artax.karlin.mff.cuni.cz>,
	"Mike Kravetz" <mike.kravetz@oracle.com>,
	"Muchun Song" <muchun.song@linux.dev>,
	"David Woodhouse" <dwmw2@infradead.org>,
	"Dave Kleikamp" <shaggy@kernel.org>, "Tejun Heo" <tj@kernel.org>,
	"Trond Myklebust" <trond.myklebust@hammerspace.com>,
	"Anna Schumaker" <anna@kernel.org>,
	"Chuck Lever" <chuck.lever@oracle.com>,
	"Ryusuke Konishi" <konishi.ryusuke@gmail.com>,
	"Anton Altaparmakov" <anton@tuxera.com>,
	"Konstantin Komarov" <almaz.alexandrovich@paragon-software.com>,
	"Mark Fasheh" <mark@fasheh.com>,
	"Joseph Qi" <joseph.qi@linux.alibaba.com>,
	"Bob Copeland" <me@bobcopeland.com>,
	"Mike Marshall" <hubcap@omnibond.com>,
	"Martin Brandenburg" <martin@omnibond.com>,
	"Luis Chamberlain" <mcgrof@kernel.org>,
	"Iurii Zaikin" <yzaikin@google.com>,
	"Tony Luck" <tony.luck@intel.com>,
	"Guilherme G. Piccoli" <gpiccoli@igalia.com>,
	"Anders Larsen" <al@alarsen.net>,
	"Steve French" <sfrench@samba.org>,
	"Paulo Alcantara" <pc@manguebit.com>,
	"Ronnie Sahlberg" <lsahlber@redhat.com>,
	"Shyam Prasad N" <sprasad@microsoft.com>,
	"Tom Talpey" <tom@talpey.com>,
	"Sergey Senozhatsky" <senozhatsky@chromium.org>,
	"Phillip Lougher" <phillip@squashfs.org.uk>,
	"Steven Rostedt" <rostedt@goodmis.org>,
	"Masami Hiramatsu" <mhiramat@kernel.org>,
	"Evgeniy Dushistov" <dushistov@mail.ru>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Darrick J. Wong" <djwong@kernel.org>,
	"Damien Le Moal" <dlemoal@kernel.org>,
	"Naohiro Aota" <naohiro.aota@wdc.com>,
	"Johannes Thumshirn" <jth@kernel.org>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Andrii Nakryiko" <andrii@kernel.org>,
	"Martin KaFai Lau" <martin.lau@linux.dev>,
	"Song Liu" <song@kernel.org>, "Yonghong Song" <yhs@fb.com>,
	"John Fastabend" <john.fastabend@gmail.com>,
	"KP Singh" <kpsingh@kernel.org>,
	"Stanislav Fomichev" <sdf@google.com>,
	"Hao Luo" <haoluo@google.com>, "Jiri Olsa" <jolsa@kernel.org>,
	"Hugh Dickins" <hughd@google.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"John Johansen" <john.johansen@canonical.com>,
	"Paul Moore" <paul@paul-moore.com>,
	"James Morris" <jmorris@namei.org>,
	"Serge E. Hallyn" <serge@hallyn.com>,
	"Stephen Smalley" <stephen.smalley.work@gmail.com>,
	"Eric Paris" <eparis@parisplace.org>,
	"Juergen Gross" <jgross@suse.com>,
	"Ruihan Li" <lrh2000@pku.edu.cn>,
	"Laurent Pinchart" <laurent.pinchart+renesas@ideasonboard.com>,
	"Wolfram Sang" <wsa+renesas@sang-engineering.com>,
	"Udipto Goswami" <quic_ugoswami@quicinc.com>,
	"Linyu Yuan" <quic_linyyuan@quicinc.com>,
	"John Keeping" <john@keeping.me.uk>,
	"Andrzej Pietrasiewicz" <andrzej.p@collabora.com>,
	"Dan Carpenter" <error27@gmail.com>,
	"Yuta Hayama" <hayama@lineo.co.jp>,
	"Jozef Martiniak" <jomajm@gmail.com>,
	"Jens Axboe" <axboe@kernel.dk>,
	"Alan Stern" <stern@rowland.harvard.edu>,
	"Sandeep Dhavale" <dhavale@google.com>,
	"Dave Chinner" <dchinner@redhat.com>,
	"Johannes Weiner" <hannes@cmpxchg.org>,
	ZhangPeng <zhangpeng362@huawei.com>,
	"Viacheslav Dubeyko" <slava@dubeyko.com>,
	"Tetsuo Handa" <penguin-kernel@I-love.SAKURA.ne.jp>,
	"Aditya Garg" <gargaditya08@live.com>,
	"Erez Zadok" <ezk@cs.stonybrook.edu>,
	"Yifei Liu" <yifeliu@cs.stonybrook.edu>,
	"Yu Zhe" <yuzhe@nfschina.com>,
	"Matthew Wilcox (Oracle)" <willy@infradead.org>,
	"Oleg Kanatov" <okanatov@gmail.com>,
	"Dr. David Alan Gilbert" <linux@treblig.org>,
	"Jiangshan Yi" <yijiangshan@kylinos.cn>,
	"xu xin" <cgel.zte@gmail.com>, "Stefan Roesch" <shr@devkernel.io>,
	"Zhihao Cheng" <chengzhihao1@huawei.com>,
	"Liam R. Howlett" <Liam.Howlett@Oracle.com>,
	"Alexey Dobriyan" <adobriyan@gmail.com>,
	"Minghao Chi" <chi.minghao@zte.com.cn>,
	"Seth Forshee" <sforshee@digitalocean.com>,
	"Zeng Jingxiang" <linuszeng@tencent.com>,
	"Bart Van Assche" <bvanassche@acm.org>,
	"Mimi Zohar" <zohar@linux.ibm.com>,
	"Roberto Sassu" <roberto.sassu@huawei.com>,
	"Zhang Yi" <yi.zhang@huawei.com>, "Tom Rix" <trix@redhat.com>,
	"Fabio M. De Francesco" <fmdefrancesco@gmail.com>,
	"Chen Zhongjin" <chenzhongjin@huawei.com>,
	"Zhengchao Shao" <shaozhengchao@huawei.com>,
	"Rik van Riel" <riel@surriel.com>,
	"Jingyu Wang" <jingyuwang_vip@163.com>,
	"Hangyu Hua" <hbh25y@gmail.com>,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-rdma@vger.kernel.org,
	linux-usb@vger.kernel.org, v9fs@lists.linux.dev,
	linux-fsdevel@vger.kernel.org, linux-afs@lists.infradead.org,
	autofs@vger.kernel.org, linux-mm@kvack.org,
	linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org,
	codalist@coda.cs.cmu.edu, ecryptfs@vger.kernel.org,
	linux-efi@vger.kernel.org, linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net, cluster-devel@redhat.com,
	linux-um@lists.infradead.org, linux-mtd@lists.infradead.org,
	jfs-discussion@lists.sourceforge.net, linux-nfs@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	linux-ntfs-dev@lists.sourceforge.net, ntfs3@lists.linux.dev,
	ocfs2-devel@oss.oracle.com,
	linux-karma-devel@lists.sourceforge.net,
	devel@lists.orangefs.org, linux-unionfs@vger.kernel.org,
	linux-hardening@vger.kernel.org, reiserfs-devel@vger.kernel.org,
	linux-cifs@vger.kernel.org, samba-technical@lists.samba.org,
	linux-trace-kernel@vger.kernel.org, linux-xfs@vger.kernel.org,
	bpf@vger.kernel.org, netdev@vger.kernel.org,
	apparmor@lists.ubuntu.com, linux-security-module@vger.kernel.org,
	selinux@vger.kernel.org
Subject: [f2fs-dev] [PATCH 01/79] fs: add ctime accessors infrastructure
Date: Wed, 21 Jun 2023 10:45:06 -0400	[thread overview]
Message-ID: <20230621144507.55591-2-jlayton@kernel.org> (raw)
In-Reply-To: <20230621144507.55591-1-jlayton@kernel.org>

struct timespec64 has unused bits in the tv_nsec field that can be used
for other purposes. In future patches, we're going to change how the
inode->i_ctime is accessed in certain inodes in order to make use of
them. In order to do that safely though, we'll need to eradicate raw
accesses of the inode->i_ctime field from the kernel.

Add new accessor functions for the ctime that we can use to replace them.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 fs/inode.c         | 16 ++++++++++++++
 include/linux/fs.h | 53 +++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 68 insertions(+), 1 deletion(-)

diff --git a/fs/inode.c b/fs/inode.c
index d37fad91c8da..c005e7328fbb 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -2499,6 +2499,22 @@ struct timespec64 current_time(struct inode *inode)
 }
 EXPORT_SYMBOL(current_time);
 
+/**
+ * inode_ctime_set_current - set the ctime to current_time
+ * @inode: inode
+ *
+ * Set the inode->i_ctime to the current value for the inode. Returns
+ * the current value that was assigned to i_ctime.
+ */
+struct timespec64 inode_ctime_set_current(struct inode *inode)
+{
+	struct timespec64 now = current_time(inode);
+
+	inode_set_ctime(inode, now);
+	return now;
+}
+EXPORT_SYMBOL(inode_ctime_set_current);
+
 /**
  * in_group_or_capable - check whether caller is CAP_FSETID privileged
  * @idmap:	idmap of the mount @inode was found from
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 6867512907d6..9afb30606373 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1474,7 +1474,58 @@ static inline bool fsuidgid_has_mapping(struct super_block *sb,
 	       kgid_has_mapping(fs_userns, kgid);
 }
 
-extern struct timespec64 current_time(struct inode *inode);
+struct timespec64 current_time(struct inode *inode);
+struct timespec64 inode_ctime_set_current(struct inode *inode);
+
+/**
+ * inode_ctime_peek - fetch the current ctime from the inode
+ * @inode: inode from which to fetch ctime
+ *
+ * Grab the current ctime from the inode and return it.
+ */
+static inline struct timespec64 inode_ctime_peek(const struct inode *inode)
+{
+	return inode->i_ctime;
+}
+
+/**
+ * inode_ctime_set - set the ctime in the inode to the given value
+ * @inode: inode in which to set the ctime
+ * @ts: timespec value to set the ctime
+ *
+ * Set the ctime in @inode to @ts.
+ */
+static inline struct timespec64 inode_ctime_set(struct inode *inode, struct timespec64 ts)
+{
+	inode->i_ctime = ts;
+	return ts;
+}
+
+/**
+ * inode_ctime_set_sec - set only the tv_sec field in the inode ctime
+ * @inode: inode in which to set the ctime
+ * @sec:  value to set the tv_sec field
+ *
+ * Set the sec field in the ctime. Returns @sec.
+ */
+static inline time64_t inode_ctime_set_sec(struct inode *inode, time64_t sec)
+{
+	inode->i_ctime.tv_sec = sec;
+	return sec;
+}
+
+/**
+ * inode_ctime_set_nsec - set only the tv_nsec field in the inode ctime
+ * @inode: inode in which to set the ctime
+ * @nsec:  value to set the tv_nsec field
+ *
+ * Set the nsec field in the ctime. Returns @nsec.
+ */
+static inline long inode_ctime_set_nsec(struct inode *inode, long nsec)
+{
+	inode->i_ctime.tv_nsec = nsec;
+	return nsec;
+}
 
 /*
  * Snapshotting support.
-- 
2.41.0



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

WARNING: multiple messages have this Message-ID (diff)
From: Jeff Layton via Ocfs2-devel <ocfs2-devel@oss.oracle.com>
To: "Jeremy Kerr" <jk@ozlabs.org>, "Arnd Bergmann" <arnd@arndb.de>,
	"Michael Ellerman" <mpe@ellerman.id.au>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Christophe Leroy" <christophe.leroy@csgroup.eu>,
	"Heiko Carstens" <hca@linux.ibm.com>,
	"Vasily Gorbik" <gor@linux.ibm.com>,
	"Alexander Gordeev" <agordeev@linux.ibm.com>,
	"Christian Borntraeger" <borntraeger@linux.ibm.com>,
	"Sven Schnelle" <svens@linux.ibm.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Arve Hjønnevåg" <arve@android.com>,
	"Todd Kjos" <tkjos@android.com>,
	"Martijn Coenen" <maco@android.com>,
	"Joel Fernandes" <joel@joelfernandes.org>,
	"Christian Brauner" <brauner@kernel.org>,
	"Carlos Llamas" <cmllamas@google.com>,
	"Suren Baghdasaryan" <surenb@google.com>,
	"Dennis Dalessandro" <dennis.dalessandro@cornelisnetworks.com>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	"Leon Romanovsky" <leon@kernel.org>,
	"Brad Warrum" <bwarrum@linux.ibm.com>,
	"Ritu Agarwal" <rituagar@linux.ibm.com>,
	"Eric Van Hensbergen" <ericvh@kernel.org>,
	"Latchesar Ionkov" <lucho@ionkov.net>,
	"Dominique Martinet" <asmadeus@codewreck.org>,
	"Christian Schoenebeck" <linux_oss@crudebyte.com>,
	"David Sterba" <dsterba@suse.com>,
	"David Howells" <dhowells@redhat.com>,
	"Marc Dionne" <marc.dionne@auristor.com>,
	"Alexander Viro" <viro@zeniv.linux.org.uk>,
	"Ian Kent" <raven@themaw.net>,
	"Luis de Bethencourt" <luisbg@kernel.org>,
	"Salah Triki" <salah.triki@gmail.com>,
	"Tigran A. Aivazian" <aivazian.tigran@gmail.com>,
	"Eric Biederman" <ebiederm@xmission.com>,
	"Kees Cook" <keescook@chromium.org>, "Chris Mason" <clm@fb.com>,
	"Josef Bacik" <josef@toxicpanda.com>,
	"Xiubo Li" <xiubli@redhat.com>,
	"Ilya Dryomov" <idryomov@gmail.com>,
	"Jan Harkes" <jaharkes@cs.cmu.edu>,
	coda@cs.cmu.edu, "Joel Becker" <jlbec@evilplan.org>,
	"Christoph Hellwig" <hch@lst.de>,
	"Nicolas Pitre" <nico@fluxnic.net>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	"Tyler Hicks" <code@tyhicks.com>,
	"Ard Biesheuvel" <ardb@kernel.org>,
	"Gao Xiang" <xiang@kernel.org>, "Chao Yu" <chao@kernel.org>,
	"Yue Hu" <huyue2@coolpad.com>,
	"Jeffle Xu" <jefflexu@linux.alibaba.com>,
	"Namjae Jeon" <linkinjeon@kernel.org>,
	"Sungjong Seo" <sj1557.seo@samsung.com>,
	"Jan Kara" <jack@suse.com>, "Theodore Ts'o" <tytso@mit.edu>,
	"Andreas Dilger" <adilger.kernel@dilger.ca>,
	"Jaegeuk Kim" <jaegeuk@kernel.org>,
	"OGAWA Hirofumi" <hirofumi@mail.parknet.co.jp>,
	"Miklos Szeredi" <miklos@szeredi.hu>,
	"Bob Peterson" <rpeterso@redhat.com>,
	"Andreas Gruenbacher" <agruenba@redhat.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Anton Ivanov" <anton.ivanov@cambridgegreys.com>,
	"Johannes Berg" <johannes@sipsolutions.net>,
	"Mikulas Patocka" <mikulas@artax.karlin.mff.cuni.cz>,
	"Mike Kravetz" <mike.kravetz@oracle.com>,
	"Muchun Song" <muchun.song@linux.dev>,
	"David Woodhouse" <dwmw2@infradead.org>,
	"Dave Kleikamp" <shaggy@kernel.org>, "Tejun Heo" <tj@kernel.org>,
	"Trond Myklebust" <trond.myklebust@hammerspace.com>,
	"Anna Schumaker" <anna@kernel.org>,
	"Chuck Lever" <chuck.lever@oracle.com>,
	"Ryusuke Konishi" <konishi.ryusuke@gmail.com>,
	"Anton Altaparmakov" <anton@tuxera.com>,
	"Konstantin Komarov" <almaz.alexandrovich@paragon-software.com>,
	"Mark Fasheh" <mark@fasheh.com>,
	"Joseph Qi" <joseph.qi@linux.alibaba.com>,
	"Bob Copeland" <me@bobcopeland.com>,
	"Mike Marshall" <hubcap@omnibond.com>,
	"Martin Brandenburg" <martin@omnibond.com>,
	"Luis Chamberlain" <mcgrof@kernel.org>,
	"Iurii Zaikin" <yzaikin@google.com>,
	"Tony Luck" <tony.luck@intel.com>,
	"Guilherme G. Piccoli" <gpiccoli@igalia.com>,
	"Anders Larsen" <al@alarsen.net>,
	"Steve French" <sfrench@samba.org>,
	"Paulo Alcantara" <pc@manguebit.com>,
	"Ronnie Sahlberg" <lsahlber@redhat.com>,
	"Shyam Prasad N" <sprasad@microsoft.com>,
	"Tom Talpey" <tom@talpey.com>,
	"Sergey Senozhatsky" <senozhatsky@chromium.org>,
	"Phillip Lougher" <phillip@squashfs.org.uk>,
	"Steven Rostedt" <rostedt@goodmis.org>,
	"Masami Hiramatsu" <mhiramat@kernel.org>,
	"Evgeniy Dushistov" <dushistov@mail.ru>,
	"Hans de Goede" <hdegoede@redhat.com>,
	"Darrick J. Wong" <djwong@kernel.org>,
	"Damien Le Moal" <dlemoal@kernel.org>,
	"Naohiro Aota" <naohiro.aota@wdc.com>,
	"Johannes Thumshirn" <jth@kernel.org>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Andrii Nakryiko" <andrii@kernel.org>,
	"Martin KaFai Lau" <martin.lau@linux.dev>,
	"Song Liu" <song@kernel.org>, "Yonghong Song" <yhs@fb.com>,
	"John Fastabend" <john.fastabend@gmail.com>,
	"KP Singh" <kpsingh@kernel.org>,
	"Stanislav Fomichev" <sdf@google.com>,
	"Hao Luo" <haoluo@google.com>, "Jiri Olsa" <jolsa@kernel.org>,
	"Hugh Dickins" <hughd@google.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"John Johansen" <john.johansen@canonical.com>,
	"Paul Moore" <paul@paul-moore.com>,
	"James Morris" <jmorris@namei.org>,
	"Serge E. Hallyn" <serge@hallyn.com>,
	"Stephen Smalley" <stephen.smalley.work@gmail.com>,
	"Eric Paris" <eparis@parisplace.org>,
	"Juergen Gross" <jgross@suse.com>,
	"Ruihan Li" <lrh2000@pku.edu.cn>,
	"Laurent Pinchart" <laurent.pinchart+renesas@ideasonboard.com>,
	"Wolfram Sang" <wsa+renesas@sang-engineering.com>,
	"Udipto Goswami" <quic_ugoswami@quicinc.com>,
	"Linyu Yuan" <quic_linyyuan@quicinc.com>,
	"John Keeping" <john@keeping.me.uk>,
	"Andrzej Pietrasiewicz" <andrzej.p@collabora.com>,
	"Dan Carpenter" <error27@gmail.com>,
	"Yuta Hayama" <hayama@lineo.co.jp>,
	"Jozef Martiniak" <jomajm@gmail.com>,
	"Jens Axboe" <axboe@kernel.dk>,
	"Alan Stern" <stern@rowland.harvard.edu>,
	"Sandeep Dhavale" <dhavale@google.com>,
	"Dave Chinner" <dchinner@redhat.com>,
	"Johannes Weiner" <hannes@cmpxchg.org>,
	ZhangPeng <zhangpeng362@huawei.com>,
	"Viacheslav Dubeyko" <slava@dubeyko.com>,
	"Tetsuo Handa" <penguin-kernel@I-love.SAKURA.ne.jp>,
	"Aditya Garg" <gargaditya08@live.com>,
	"Erez Zadok" <ezk@cs.stonybrook.edu>,
	"Yifei Liu" <yifeliu@cs.stonybrook.edu>,
	"Yu Zhe" <yuzhe@nfschina.com>,
	"Matthew Wilcox (Oracle)" <willy@infradead.org>,
	"Oleg Kanatov" <okanatov@gmail.com>,
	"Dr. David Alan Gilbert" <linux@treblig.org>,
	"Jiangshan Yi" <yijiangshan@kylinos.cn>,
	"xu xin" <cgel.zte@gmail.com>, "Stefan Roesch" <shr@devkernel.io>,
	"Zhihao Cheng" <chengzhihao1@huawei.com>,
	"Liam R. Howlett" <Liam.Howlett@Oracle.com>,
	"Alexey Dobriyan" <adobriyan@gmail.com>,
	"Minghao Chi" <chi.minghao@zte.com.cn>,
	"Seth Forshee" <sforshee@digitalocean.com>,
	"Zeng Jingxiang" <linuszeng@tencent.com>,
	"Bart Van Assche" <bvanassche@acm.org>,
	"Mimi Zohar" <zohar@linux.ibm.com>,
	"Roberto Sassu" <roberto.sassu@huawei.com>,
	"Zhang Yi" <yi.zhang@huawei.com>, "Tom Rix" <trix@redhat.com>,
	"Fabio M. De Francesco" <fmdefrancesco@gmail.com>,
	"Chen Zhongjin" <chenzhongjin@huawei.com>,
	"Zhengchao Shao" <shaozhengchao@huawei.com>,
	"Rik van Riel" <riel@surriel.com>,
	"Jingyu Wang" <jingyuwang_vip@163.com>,
	"Hangyu Hua" <hbh25y@gmail.com>,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	linux-s390@vger.kernel.org, linux-rdma@vger.kernel.org,
	linux-usb@vger.kernel.org, v9fs@lists.linux.dev,
	linux-fsdevel@vger.kernel.org, linux-afs@lists.infradead.org,
	autofs@vger.kernel.org, linux-mm@kvack.org,
	linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org,
	codalist@coda.cs.cmu.edu, ecryptfs@vger.kernel.org,
	linux-efi@vger.kernel.org, linux-erofs@lists.ozlabs.org,
	linux-ext4@vger.kernel.org,
	linux-f2fs-devel@lists.sourceforge.net, cluster-devel@redhat.com,
	linux-um@lists.infradead.org, linux-mtd@lists.infradead.org,
	jfs-discussion@lists.sourceforge.net, linux-nfs@vger.kernel.org,
	linux-nilfs@vger.kernel.org,
	linux-ntfs-dev@lists.sourceforge.net, ntfs3@lists.linux.dev,
	ocfs2-devel@oss.oracle.com,
	linux-karma-devel@lists.sourceforge.net,
	devel@lists.orangefs.org, linux-unionfs@vger.kernel.org,
	linux-hardening@vger.kernel.org, reiserfs-devel@vger.kernel.org,
	linux-cifs@vger.kernel.org, samba-technical@lists.samba.org,
	linux-trace-kernel@vger.kernel.org, linux-xfs@vger.kernel.org,
	bpf@vger.kernel.org, netdev@vger.kernel.org,
	apparmor@lists.ubuntu.com, linux-security-module@vger.kernel.org,
	selinux@vger.kernel.org
Subject: [Ocfs2-devel] [PATCH 01/79] fs: add ctime accessors infrastructure
Date: Wed, 21 Jun 2023 10:45:06 -0400	[thread overview]
Message-ID: <20230621144507.55591-2-jlayton@kernel.org> (raw)
In-Reply-To: <20230621144507.55591-1-jlayton@kernel.org>

struct timespec64 has unused bits in the tv_nsec field that can be used
for other purposes. In future patches, we're going to change how the
inode->i_ctime is accessed in certain inodes in order to make use of
them. In order to do that safely though, we'll need to eradicate raw
accesses of the inode->i_ctime field from the kernel.

Add new accessor functions for the ctime that we can use to replace them.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 fs/inode.c         | 16 ++++++++++++++
 include/linux/fs.h | 53 +++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 68 insertions(+), 1 deletion(-)

diff --git a/fs/inode.c b/fs/inode.c
index d37fad91c8da..c005e7328fbb 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -2499,6 +2499,22 @@ struct timespec64 current_time(struct inode *inode)
 }
 EXPORT_SYMBOL(current_time);
 
+/**
+ * inode_ctime_set_current - set the ctime to current_time
+ * @inode: inode
+ *
+ * Set the inode->i_ctime to the current value for the inode. Returns
+ * the current value that was assigned to i_ctime.
+ */
+struct timespec64 inode_ctime_set_current(struct inode *inode)
+{
+	struct timespec64 now = current_time(inode);
+
+	inode_set_ctime(inode, now);
+	return now;
+}
+EXPORT_SYMBOL(inode_ctime_set_current);
+
 /**
  * in_group_or_capable - check whether caller is CAP_FSETID privileged
  * @idmap:	idmap of the mount @inode was found from
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 6867512907d6..9afb30606373 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1474,7 +1474,58 @@ static inline bool fsuidgid_has_mapping(struct super_block *sb,
 	       kgid_has_mapping(fs_userns, kgid);
 }
 
-extern struct timespec64 current_time(struct inode *inode);
+struct timespec64 current_time(struct inode *inode);
+struct timespec64 inode_ctime_set_current(struct inode *inode);
+
+/**
+ * inode_ctime_peek - fetch the current ctime from the inode
+ * @inode: inode from which to fetch ctime
+ *
+ * Grab the current ctime from the inode and return it.
+ */
+static inline struct timespec64 inode_ctime_peek(const struct inode *inode)
+{
+	return inode->i_ctime;
+}
+
+/**
+ * inode_ctime_set - set the ctime in the inode to the given value
+ * @inode: inode in which to set the ctime
+ * @ts: timespec value to set the ctime
+ *
+ * Set the ctime in @inode to @ts.
+ */
+static inline struct timespec64 inode_ctime_set(struct inode *inode, struct timespec64 ts)
+{
+	inode->i_ctime = ts;
+	return ts;
+}
+
+/**
+ * inode_ctime_set_sec - set only the tv_sec field in the inode ctime
+ * @inode: inode in which to set the ctime
+ * @sec:  value to set the tv_sec field
+ *
+ * Set the sec field in the ctime. Returns @sec.
+ */
+static inline time64_t inode_ctime_set_sec(struct inode *inode, time64_t sec)
+{
+	inode->i_ctime.tv_sec = sec;
+	return sec;
+}
+
+/**
+ * inode_ctime_set_nsec - set only the tv_nsec field in the inode ctime
+ * @inode: inode in which to set the ctime
+ * @nsec:  value to set the tv_nsec field
+ *
+ * Set the nsec field in the ctime. Returns @nsec.
+ */
+static inline long inode_ctime_set_nsec(struct inode *inode, long nsec)
+{
+	inode->i_ctime.tv_nsec = nsec;
+	return nsec;
+}
 
 /*
  * Snapshotting support.
-- 
2.41.0


_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

WARNING: multiple messages have this Message-ID (diff)
From: Jeff Layton <jlayton@kernel.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH 01/79] fs: add ctime accessors infrastructure
Date: Wed, 21 Jun 2023 10:45:06 -0400	[thread overview]
Message-ID: <20230621144507.55591-2-jlayton@kernel.org> (raw)
In-Reply-To: <20230621144507.55591-1-jlayton@kernel.org>

struct timespec64 has unused bits in the tv_nsec field that can be used
for other purposes. In future patches, we're going to change how the
inode->i_ctime is accessed in certain inodes in order to make use of
them. In order to do that safely though, we'll need to eradicate raw
accesses of the inode->i_ctime field from the kernel.

Add new accessor functions for the ctime that we can use to replace them.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 fs/inode.c         | 16 ++++++++++++++
 include/linux/fs.h | 53 +++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 68 insertions(+), 1 deletion(-)

diff --git a/fs/inode.c b/fs/inode.c
index d37fad91c8da..c005e7328fbb 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -2499,6 +2499,22 @@ struct timespec64 current_time(struct inode *inode)
 }
 EXPORT_SYMBOL(current_time);
 
+/**
+ * inode_ctime_set_current - set the ctime to current_time
+ * @inode: inode
+ *
+ * Set the inode->i_ctime to the current value for the inode. Returns
+ * the current value that was assigned to i_ctime.
+ */
+struct timespec64 inode_ctime_set_current(struct inode *inode)
+{
+	struct timespec64 now = current_time(inode);
+
+	inode_set_ctime(inode, now);
+	return now;
+}
+EXPORT_SYMBOL(inode_ctime_set_current);
+
 /**
  * in_group_or_capable - check whether caller is CAP_FSETID privileged
  * @idmap:	idmap of the mount @inode was found from
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 6867512907d6..9afb30606373 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1474,7 +1474,58 @@ static inline bool fsuidgid_has_mapping(struct super_block *sb,
 	       kgid_has_mapping(fs_userns, kgid);
 }
 
-extern struct timespec64 current_time(struct inode *inode);
+struct timespec64 current_time(struct inode *inode);
+struct timespec64 inode_ctime_set_current(struct inode *inode);
+
+/**
+ * inode_ctime_peek - fetch the current ctime from the inode
+ * @inode: inode from which to fetch ctime
+ *
+ * Grab the current ctime from the inode and return it.
+ */
+static inline struct timespec64 inode_ctime_peek(const struct inode *inode)
+{
+	return inode->i_ctime;
+}
+
+/**
+ * inode_ctime_set - set the ctime in the inode to the given value
+ * @inode: inode in which to set the ctime
+ * @ts: timespec value to set the ctime
+ *
+ * Set the ctime in @inode to @ts.
+ */
+static inline struct timespec64 inode_ctime_set(struct inode *inode, struct timespec64 ts)
+{
+	inode->i_ctime = ts;
+	return ts;
+}
+
+/**
+ * inode_ctime_set_sec - set only the tv_sec field in the inode ctime
+ * @inode: inode in which to set the ctime
+ * @sec:  value to set the tv_sec field
+ *
+ * Set the sec field in the ctime. Returns @sec.
+ */
+static inline time64_t inode_ctime_set_sec(struct inode *inode, time64_t sec)
+{
+	inode->i_ctime.tv_sec = sec;
+	return sec;
+}
+
+/**
+ * inode_ctime_set_nsec - set only the tv_nsec field in the inode ctime
+ * @inode: inode in which to set the ctime
+ * @nsec:  value to set the tv_nsec field
+ *
+ * Set the nsec field in the ctime. Returns @nsec.
+ */
+static inline long inode_ctime_set_nsec(struct inode *inode, long nsec)
+{
+	inode->i_ctime.tv_nsec = nsec;
+	return nsec;
+}
 
 /*
  * Snapshotting support.
-- 
2.41.0


  reply	other threads:[~2023-06-21 14:45 UTC|newest]

Thread overview: 229+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-21 14:45 [PATCH 00/79] fs: new accessors for inode->i_ctime Jeff Layton
2023-06-21 14:45 ` [Cluster-devel] " Jeff Layton
2023-06-21 14:45 ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 14:45 ` [f2fs-dev] " Jeff Layton
2023-06-21 14:45 ` Jeff Layton [this message]
2023-06-21 14:45   ` [Cluster-devel] [PATCH 01/79] fs: add ctime accessors infrastructure Jeff Layton
2023-06-21 14:45   ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 14:45   ` [f2fs-dev] " Jeff Layton
2023-06-21 16:34   ` Jan Kara
2023-06-21 16:34     ` Jan Kara
2023-06-21 16:34     ` [Cluster-devel] " Jan Kara
2023-06-21 16:34     ` Jan Kara
2023-06-21 16:34     ` Jan Kara
2023-06-21 16:34     ` [Ocfs2-devel] " Jan Kara via Ocfs2-devel
2023-06-21 16:34     ` [f2fs-dev] " Jan Kara
2023-06-21 17:29   ` Tom Talpey
2023-06-21 17:29     ` [Cluster-devel] " Tom Talpey
2023-06-21 17:29     ` [f2fs-dev] " Tom Talpey
2023-06-21 17:29     ` [Ocfs2-devel] " Tom Talpey via Ocfs2-devel
2023-06-21 18:01     ` Jeff Layton
2023-06-21 18:01       ` [Cluster-devel] " Jeff Layton
2023-06-21 18:01       ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 18:01       ` [f2fs-dev] " Jeff Layton
2023-06-21 18:19       ` Tom Talpey
2023-06-21 18:19         ` [Cluster-devel] " Tom Talpey
2023-06-21 18:19         ` [Ocfs2-devel] " Tom Talpey via Ocfs2-devel
2023-06-21 18:19         ` [f2fs-dev] " Tom Talpey
2023-06-21 18:48         ` Jeff Layton
2023-06-21 18:48           ` [Cluster-devel] " Jeff Layton
2023-06-21 18:48           ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 18:48           ` [f2fs-dev] " Jeff Layton
2023-06-22  0:46   ` Damien Le Moal
2023-06-22  0:46     ` [Cluster-devel] " Damien Le Moal
2023-06-22  0:46     ` [Ocfs2-devel] " Damien Le Moal via Ocfs2-devel
2023-06-22  0:46     ` [f2fs-dev] " Damien Le Moal
2023-06-22 10:14     ` Jeff Layton
2023-06-22 10:14       ` [Cluster-devel] " Jeff Layton
2023-06-22 10:14       ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-22 10:14       ` [f2fs-dev] " Jeff Layton
     [not found]     ` <99b3c749-23d9-6f09-fb75-6a84f3d1b066-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2023-06-22 10:14       ` Jeff Layton
2023-06-22 10:14     ` Jeff Layton
2023-06-30 22:12   ` Luis Chamberlain
2023-06-30 22:12     ` Luis Chamberlain
2023-06-30 22:12     ` [Cluster-devel] " Luis Chamberlain
2023-06-30 22:12     ` Luis Chamberlain
2023-06-30 22:12     ` Luis Chamberlain
2023-06-30 22:12     ` [f2fs-dev] " Luis Chamberlain
     [not found]   ` <20230621144507.55591-2-jlayton-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2023-07-12 15:31     ` Randy Dunlap
2023-07-12 15:31   ` Randy Dunlap
2023-07-12 15:31     ` [Cluster-devel] " Randy Dunlap
2023-07-12 15:31     ` Randy Dunlap
2023-07-12 15:31     ` Randy Dunlap
2023-07-12 15:34     ` Christian Brauner
2023-07-12 15:34       ` Christian Brauner
2023-07-12 15:31   ` Randy Dunlap
2023-06-21 14:45 ` [PATCH 02/79] spufs: switch to new ctime accessors Jeff Layton
2023-06-21 14:45   ` Jeff Layton
2023-06-21 14:45   ` [PATCH 03/79] s390: " Jeff Layton
2023-06-21 16:34     ` Jan Kara
2023-06-22 17:35     ` Alexander Gordeev
2023-06-22 17:51       ` Jeff Layton
2023-06-22 18:22         ` Alexander Gordeev
2023-06-22 18:46           ` Jeff Layton
2023-06-21 14:45   ` [PATCH 04/79] binderfs: " Jeff Layton
2023-06-21 15:29     ` Greg Kroah-Hartman
2023-06-21 16:35     ` Jan Kara
2023-06-21 14:45   ` [PATCH 05/79] qib_fs: " Jeff Layton
2023-06-21 16:35     ` Jan Kara
2023-06-21 19:37     ` Dennis Dalessandro
2023-06-21 14:45   ` [PATCH 06/79] ibm: " Jeff Layton
2023-06-21 15:29     ` Greg Kroah-Hartman
2023-06-21 16:35     ` Jan Kara
2023-06-21 14:45   ` [PATCH 07/79] usb: " Jeff Layton
2023-06-21 15:29     ` Greg Kroah-Hartman
2023-06-21 16:36     ` Jan Kara
2023-06-21 14:45   ` [PATCH 08/79] 9p: " Jeff Layton
2023-06-21 16:37     ` Jan Kara
2023-06-21 14:45   ` [PATCH 09/79] adfs: " Jeff Layton
2023-06-21 16:38     ` Jan Kara
2023-06-21 14:45   ` [PATCH 10/79] affs: " Jeff Layton
2023-06-21 16:39     ` Jan Kara
2023-06-22 11:37     ` David Sterba
2023-06-21 14:45   ` [PATCH 11/79] afs: " Jeff Layton
2023-06-21 16:43     ` Jan Kara
2023-06-21 14:45   ` [PATCH 12/79] fs: " Jeff Layton
2023-06-21 16:42     ` Jan Kara
2023-06-21 14:45   ` [PATCH 13/79] autofs: " Jeff Layton
2023-06-21 16:43     ` Jan Kara
2023-06-27  1:48     ` Ian Kent
2023-06-21 14:45   ` [PATCH 14/79] befs: " Jeff Layton
2023-06-21 16:44     ` Jan Kara
2023-06-21 14:45   ` [PATCH 15/79] bfs: " Jeff Layton
2023-06-21 16:48     ` Jan Kara
2023-06-21 16:57       ` Jeff Layton
2023-06-22 12:30         ` Jan Kara
2023-06-22 12:51           ` Jeff Layton
2023-06-22 14:57             ` Jan Kara
2023-06-23 12:33               ` Christian Brauner
2023-07-03 10:12                 ` Christian Brauner
2023-07-03 10:46                   ` Jeff Layton
2023-07-03 10:57                     ` Christian Brauner
2023-06-21 14:45   ` [PATCH 16/79] btrfs: " Jeff Layton
2023-06-22 11:42     ` David Sterba
2023-06-21 14:45   ` [PATCH 17/79] ceph: " Jeff Layton
2023-06-26  0:56     ` Xiubo Li
2023-06-21 14:45   ` [PATCH 18/79] coda: " Jeff Layton
2023-06-21 14:45   ` [PATCH 19/79] configfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 20/79] cramfs: " Jeff Layton
2023-06-21 15:29     ` Nicolas Pitre
2023-06-21 14:45   ` [PATCH 21/79] debugfs: " Jeff Layton
2023-06-21 15:29     ` Greg Kroah-Hartman
2023-06-21 14:45   ` [PATCH 22/79] devpts: " Jeff Layton
2023-06-21 14:45   ` [PATCH 23/79] ecryptfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 24/79] efivarfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 25/79] efs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 26/79] erofs: " Jeff Layton
2023-06-21 14:45     ` Jeff Layton
2023-06-22  4:01     ` Gao Xiang
2023-06-22  4:01       ` Gao Xiang
2023-06-21 14:45   ` [PATCH 27/79] exfat: " Jeff Layton
2023-06-21 14:45   ` [PATCH 28/79] ext2: " Jeff Layton
2023-06-21 14:45   ` [PATCH 29/79] ext4: " Jeff Layton
2023-06-21 14:45   ` [f2fs-dev] [PATCH 30/79] f2fs: " Jeff Layton
2023-06-21 14:45     ` Jeff Layton
2023-06-21 14:45   ` [PATCH 31/79] fat: " Jeff Layton
2023-06-21 14:45   ` [PATCH 32/79] freevxfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 33/79] fuse: " Jeff Layton
2023-06-21 14:45   ` [PATCH 34/79] gfs2: " Jeff Layton
2023-06-21 14:45     ` [Cluster-devel] " Jeff Layton
2023-06-21 14:45   ` [PATCH 35/79] hfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 36/79] hfsplus: " Jeff Layton
2023-06-21 14:45   ` [PATCH 37/79] hostfs: " Jeff Layton
2023-06-21 14:45     ` Jeff Layton
2023-06-21 14:45   ` [PATCH 38/79] hpfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 39/79] hugetlbfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 40/79] isofs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 41/79] jffs2: " Jeff Layton
2023-06-21 14:45     ` Jeff Layton
2023-06-21 14:45   ` [PATCH 42/79] jfs: " Jeff Layton
2023-06-21 17:47     ` Dave Kleikamp
2023-06-21 14:45   ` [PATCH 43/79] kernfs: " Jeff Layton
2023-06-21 15:30     ` Greg Kroah-Hartman
2023-06-21 14:45   ` [PATCH 44/79] minix: " Jeff Layton
2023-06-21 14:45   ` [PATCH 45/79] nfs: " Jeff Layton
2023-06-21 14:45   ` [PATCH 46/79] nfsd: " Jeff Layton
2023-06-21 17:36     ` Chuck Lever
2023-06-21 14:46   ` [PATCH 47/79] nilfs2: " Jeff Layton
2023-06-21 14:46     ` Jeff Layton
2023-06-26 15:26     ` Ryusuke Konishi
2023-06-26 15:26       ` Ryusuke Konishi
2023-06-21 14:46   ` [PATCH 48/79] ntfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 49/79] ntfs3: " Jeff Layton
2023-06-21 14:46   ` [Ocfs2-devel] [PATCH 50/79] ocfs2: " Jeff Layton via Ocfs2-devel
2023-06-21 14:46     ` Jeff Layton
2023-06-21 14:46   ` [PATCH 51/79] omfs: " Jeff Layton
2023-06-23 12:12     ` Bob Copeland
2023-06-21 14:46   ` [PATCH 52/79] openpromfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 53/79] orangefs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 54/79] overlayfs: " Jeff Layton
2023-06-22  6:44     ` Amir Goldstein
2023-06-21 14:46   ` [PATCH 55/79] proc: " Jeff Layton
2023-06-30 22:13     ` Luis Chamberlain
2023-06-21 14:46   ` [PATCH 56/79] pstore: " Jeff Layton
2023-06-21 17:50     ` Kees Cook
2023-06-21 14:46   ` [PATCH 57/79] qnx4: " Jeff Layton
2023-06-23 14:26     ` Anders Larsen
2023-06-21 14:46   ` [PATCH 58/79] qnx6: " Jeff Layton
2023-06-21 14:46   ` [PATCH 59/79] ramfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 60/79] reiserfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 61/79] romfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 62/79] smb: " Jeff Layton
2023-06-21 17:45     ` Tom Talpey
2023-06-23  5:03     ` Sergey Senozhatsky
2023-06-21 14:46   ` [PATCH 63/79] squashfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 64/79] sysv: " Jeff Layton
2023-06-21 14:46   ` [PATCH 65/79] tracefs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 66/79] ubifs: " Jeff Layton
2023-06-21 14:46     ` Jeff Layton
2023-06-21 14:46   ` [PATCH 67/79] udf: " Jeff Layton
2023-06-21 14:46   ` [PATCH 68/79] ufs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 69/79] vboxsf: " Jeff Layton
2023-06-21 14:46   ` [PATCH 70/79] xfs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 71/79] zonefs: " Jeff Layton
2023-06-22  0:48     ` Damien Le Moal
2023-06-21 14:46   ` [PATCH 72/79] mqueue: " Jeff Layton
2023-06-21 14:46   ` [PATCH 73/79] bpf: " Jeff Layton
2023-06-21 14:46   ` [PATCH 74/79] shmem: " Jeff Layton
2023-06-21 14:46   ` [PATCH 75/79] rpc_pipefs: " Jeff Layton
2023-06-21 14:46   ` [PATCH 76/79] apparmor: " Jeff Layton
2023-06-22  9:04     ` John Johansen
2023-06-21 14:46   ` [PATCH 77/79] security: " Jeff Layton
2023-06-23 14:15     ` Paul Moore
2023-06-21 14:46   ` [PATCH 78/79] selinux: " Jeff Layton
2023-06-23 14:17     ` Paul Moore
2023-06-21 16:34   ` [PATCH 02/79] spufs: " Jan Kara
2023-06-21 16:34     ` Jan Kara
2023-06-22  0:19   ` Jeremy Kerr
2023-06-22  0:19     ` Jeremy Kerr
2023-06-21 14:49 ` [PATCH 79/79] fs: rename i_ctime field to __i_ctime Jeff Layton
2023-06-21 14:49   ` [Cluster-devel] " Jeff Layton
2023-06-21 14:49   ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 14:49   ` [f2fs-dev] " Jeff Layton
2023-06-21 19:21 ` [PATCH 00/79] fs: new accessors for inode->i_ctime Steven Rostedt
2023-06-21 19:21   ` Steven Rostedt
2023-06-21 19:21   ` [Cluster-devel] " Steven Rostedt
2023-06-21 19:21   ` Steven Rostedt
2023-06-21 19:21   ` Steven Rostedt
2023-06-21 19:21   ` [Ocfs2-devel] " Steven Rostedt via Ocfs2-devel
2023-06-21 19:21   ` [f2fs-dev] " Steven Rostedt
2023-06-21 19:52   ` Jeff Layton
2023-06-21 19:52     ` Jeff Layton
2023-06-21 19:52     ` [Cluster-devel] " Jeff Layton
2023-06-21 19:52     ` [Ocfs2-devel] " Jeff Layton via Ocfs2-devel
2023-06-21 19:52     ` Jeff Layton
2023-06-21 19:52     ` Jeff Layton
2023-06-21 19:52     ` [f2fs-dev] " Jeff Layton
2023-06-23 12:41     ` Christian Brauner
2023-06-23 12:41       ` Christian Brauner
2023-06-23 12:41       ` [Cluster-devel] " Christian Brauner
2023-06-23 12:41       ` Christian Brauner
2023-06-23 12:41       ` Christian Brauner
2023-06-23 12:41       ` [Ocfs2-devel] " Christian Brauner via Ocfs2-devel
2023-06-23 12:41       ` [f2fs-dev] " Christian Brauner
2023-06-30 22:11   ` Luis Chamberlain
2023-06-30 22:11     ` Luis Chamberlain
2023-06-30 22:11     ` [Cluster-devel] " Luis Chamberlain
2023-06-30 22:11     ` Luis Chamberlain
2023-06-30 22:11     ` Luis Chamberlain
2023-06-30 22:11     ` [f2fs-dev] " Luis Chamberlain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230621144507.55591-2-jlayton@kernel.org \
    --to=jlayton@kernel.org \
    --cc=Liam.Howlett@Oracle.com \
    --cc=adilger.kernel@dilger.ca \
    --cc=adobriyan@gmail.com \
    --cc=agordeev@linux.ibm.com \
    --cc=agruenba@redhat.com \
    --cc=aivazian.tigran@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=al@alarsen.net \
    --cc=almaz.alexandrovich@paragon-software.com \
    --cc=andrii@kernel.org \
    --cc=andrzej.p@collabora.com \
    --cc=anna@kernel.org \
    --cc=anton.ivanov@cambridgegreys.com \
    --cc=anton@tuxera.com \
    --cc=apparmor@lists.ubuntu.com \
    --cc=ardb@kernel.org \
    --cc=arnd@arndb.de \
    --cc=arve@android.com \
    --cc=asmadeus@codewreck.org \
    --cc=ast@kernel.org \
    --cc=autofs@vger.kernel.org \
    --cc=axboe@kernel.dk \
    --cc=borntraeger@linux.ibm.com \
    --cc=bpf@vger.kernel.org \
    --cc=brauner@kernel.org \
    --cc=bvanassche@acm.org \
    --cc=bwarrum@linux.ibm.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=cgel.zte@gmail.com \
    --cc=chao@kernel.org \
    --cc=chengzhihao1@huawei.com \
    --cc=chenzhongjin@huawei.com \
    --cc=chi.minghao@zte.com.cn \
    --cc=christophe.leroy@csgroup.eu \
    --cc=chuck.lever@oracle.com \
    --cc=clm@fb.com \
    --cc=cluster-devel@redhat.com \
    --cc=cmllamas@google.com \
    --cc=coda@cs.cmu.edu \
    --cc=codalist@coda.cs.cmu.edu \
    --cc=code@tyhicks.com \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=dchinner@redhat.com \
    --cc=dennis.dalessandro@cornelisnetworks.com \
    --cc=devel@lists.orangefs.org \
    --cc=dhavale@google.com \
    --cc=dhowells@redhat.com \
    --cc=djwong@kernel.org \
    --cc=dlemoal@kernel.org \
    --cc=dsterba@suse.com \
    --cc=dushistov@mail.ru \
    --cc=dwmw2@infradead.org \
    --cc=ebiederm@xmission.com \
    --cc=ecryptfs@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=eparis@parisplace.org \
    --cc=ericvh@kernel.org \
    --cc=error27@gmail.com \
    --cc=ezk@cs.stonybrook.edu \
    --cc=fmdefrancesco@gmail.com \
    --cc=gargaditya08@live.com \
    --cc=gor@linux.ibm.com \
    --cc=gpiccoli@igalia.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=haoluo@google.com \
    --cc=hayama@lineo.co.jp \
    --cc=hbh25y@gmail.com \
    --cc=hca@linux.ibm.com \
    --cc=hch@lst.de \
    --cc=hdegoede@redhat.com \
    --cc=hirofumi@mail.parknet.co.jp \
    --cc=hubcap@omnibond.com \
    --cc=hughd@google.com \
    --cc=huyue2@coolpad.com \
    --cc=idryomov@gmail.com \
    --cc=jack@suse.com \
    --cc=jaegeuk@kernel.org \
    --cc=jaharkes@cs.cmu.edu \
    --cc=jefflexu@linux.alibaba.com \
    --cc=jfs-discussion@lists.sourceforge.net \
    --cc=jgg@ziepe.ca \
    --cc=jgross@suse.com \
    --cc=jingyuwang_vip@163.com \
    --cc=jk@ozlabs.org \
    --cc=jlbec@evilplan.org \
    --cc=jmorris@namei.org \
    --cc=joel@joelfernandes.org \
    --cc=johannes@sipsolutions.net \
    --cc=john.fastabend@gmail.com \
    --cc=john.johansen@canonical.com \
    --cc=john@keeping.me.uk \
    --cc=jolsa@kernel.org \
    --cc=jomajm@gmail.com \
    --cc=josef@toxicpanda.com \
    --cc=joseph.qi@linux.alibaba.com \
    --cc=jth@kernel.org \
    --cc=keescook@chromium.org \
    --cc=konishi.ryusuke@gmail.com \
    --cc=kpsingh@kernel.org \
    --cc=kuba@kernel.org \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=leon@kernel.org \
    --cc=linkinjeon@kernel.org \
    --cc=linuszeng@tencent.com \
    --cc=linux-afs@lists.infradead.org \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-erofs@lists.ozlabs.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-hardening@vger.kernel.org \
    --cc=linux-karma-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux-nilfs@vger.kernel.org \
    --cc=linux-ntfs-dev@lists.sourceforge.net \
    --cc=linux-rdma@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=linux-um@lists.infradead.org \
    --cc=linux-unionfs@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=linux@treblig.org \
    --cc=linux_oss@crudebyte.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=lrh2000@pku.edu.cn \
    --cc=lsahlber@redhat.com \
    --cc=lucho@ionkov.net \
    --cc=luisbg@kernel.org \
    --cc=maco@android.com \
    --cc=marc.dionne@auristor.com \
    --cc=mark@fasheh.com \
    --cc=martin.lau@linux.dev \
    --cc=martin@omnibond.com \
    --cc=mcgrof@kernel.org \
    --cc=me@bobcopeland.com \
    --cc=mhiramat@kernel.org \
    --cc=mike.kravetz@oracle.com \
    --cc=miklos@szeredi.hu \
    --cc=mikulas@artax.karlin.mff.cuni.cz \
    --cc=mpe@ellerman.id.au \
    --cc=muchun.song@linux.dev \
    --cc=naohiro.aota@wdc.com \
    --cc=netdev@vger.kernel.org \
    --cc=nico@fluxnic.net \
    --cc=npiggin@gmail.com \
    --cc=ntfs3@lists.linux.dev \
    --cc=ocfs2-devel@oss.oracle.com \
    --cc=okanatov@gmail.com \
    --cc=pabeni@redhat.com \
    --cc=paul@paul-moore.com \
    --cc=pc@manguebit.com \
    --cc=penguin-kernel@I-love.SAKURA.ne.jp \
    --cc=phillip@squashfs.org.uk \
    --cc=quic_linyyuan@quicinc.com \
    --cc=quic_ugoswami@quicinc.com \
    --cc=rafael@kernel.org \
    --cc=raven@themaw.net \
    --cc=reiserfs-devel@vger.kernel.org \
    --cc=richard@nod.at \
    --cc=riel@surriel.com \
    --cc=rituagar@linux.ibm.com \
    --cc=roberto.sassu@huawei.com \
    --cc=rostedt@goodmis.org \
    --cc=rpeterso@redhat.com \
    --cc=salah.triki@gmail.com \
    --cc=samba-technical@lists.samba.org \
    --cc=sdf@google.com \
    --cc=selinux@vger.kernel.org \
    --cc=senozhatsky@chromium.org \
    --cc=serge@hallyn.com \
    --cc=sforshee@digitalocean.com \
    --cc=sfrench@samba.org \
    --cc=shaggy@kernel.org \
    --cc=shaozhengchao@huawei.com \
    --cc=shr@devkernel.io \
    --cc=sj1557.seo@samsung.com \
    --cc=slava@dubeyko.com \
    --cc=song@kernel.org \
    --cc=sprasad@microsoft.com \
    --cc=stephen.smalley.work@gmail.com \
    --cc=stern@rowland.harvard.edu \
    --cc=surenb@google.com \
    --cc=svens@linux.ibm.com \
    --cc=tj@kernel.org \
    --cc=tkjos@android.com \
    --cc=tom@talpey.com \
    --cc=tony.luck@intel.com \
    --cc=trix@redhat.com \
    --cc=trond.myklebust@hammerspace.com \
    --cc=tytso@mit.edu \
    --cc=v9fs@lists.linux.dev \
    --cc=viro@zeniv.linux.org.uk \
    --cc=willy@infradead.org \
    --cc=wsa+renesas@sang-engineering.com \
    --cc=xiang@kernel.org \
    --cc=xiubli@redhat.com \
    --cc=yhs@fb.com \
    --cc=yi.zhang@huawei.com \
    --cc=yifeliu@cs.stonybrook.edu \
    --cc=yijiangshan@kylinos.cn \
    --cc=yuzhe@nfschina.com \
    --cc=yzaikin@google.com \
    --cc=zhangpeng362@huawei.com \
    --cc=zohar@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.