* [PATCH 60/79] reiserfs: switch to new ctime accessors [not found] ` <20230621144735.55953-1-jlayton@kernel.org> @ 2023-06-21 14:46 ` Jeff Layton 0 siblings, 0 replies; 9+ messages in thread From: Jeff Layton @ 2023-06-21 14:46 UTC (permalink / raw) To: Christian Brauner; +Cc: Al Viro, Jan Kara, reiserfs-devel, linux-kernel In later patches, we're going to change how the ctime.tv_nsec field is utilized. Switch to using accessor functions instead of raw accesses of inode->i_ctime. Signed-off-by: Jeff Layton <jlayton@kernel.org> --- fs/reiserfs/inode.c | 14 +++++++------- fs/reiserfs/ioctl.c | 4 ++-- fs/reiserfs/namei.c | 21 ++++++++++----------- fs/reiserfs/stree.c | 4 ++-- fs/reiserfs/super.c | 2 +- fs/reiserfs/xattr.c | 5 +++-- fs/reiserfs/xattr_acl.c | 2 +- 7 files changed, 26 insertions(+), 26 deletions(-) diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c index 77bd3b27059f..3d4e18af8dac 100644 --- a/fs/reiserfs/inode.c +++ b/fs/reiserfs/inode.c @@ -1259,9 +1259,9 @@ static void init_inode(struct inode *inode, struct treepath *path) inode->i_size = sd_v1_size(sd); inode->i_atime.tv_sec = sd_v1_atime(sd); inode->i_mtime.tv_sec = sd_v1_mtime(sd); - inode->i_ctime.tv_sec = sd_v1_ctime(sd); + inode_ctime_set_sec(inode, sd_v1_ctime(sd)); inode->i_atime.tv_nsec = 0; - inode->i_ctime.tv_nsec = 0; + inode_ctime_set_nsec(inode, 0); inode->i_mtime.tv_nsec = 0; inode->i_blocks = sd_v1_blocks(sd); @@ -1314,8 +1314,8 @@ static void init_inode(struct inode *inode, struct treepath *path) i_gid_write(inode, sd_v2_gid(sd)); inode->i_mtime.tv_sec = sd_v2_mtime(sd); inode->i_atime.tv_sec = sd_v2_atime(sd); - inode->i_ctime.tv_sec = sd_v2_ctime(sd); - inode->i_ctime.tv_nsec = 0; + inode_ctime_set_sec(inode, sd_v2_ctime(sd)); + inode_ctime_set_nsec(inode, 0); inode->i_mtime.tv_nsec = 0; inode->i_atime.tv_nsec = 0; inode->i_blocks = sd_v2_blocks(sd); @@ -1374,7 +1374,7 @@ static void inode2sd(void *sd, struct inode *inode, loff_t size) set_sd_v2_gid(sd_v2, i_gid_read(inode)); set_sd_v2_mtime(sd_v2, inode->i_mtime.tv_sec); set_sd_v2_atime(sd_v2, inode->i_atime.tv_sec); - set_sd_v2_ctime(sd_v2, inode->i_ctime.tv_sec); + set_sd_v2_ctime(sd_v2, inode_ctime_peek(inode).tv_sec); set_sd_v2_blocks(sd_v2, to_fake_used_blocks(inode, SD_V2_SIZE)); if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) set_sd_v2_rdev(sd_v2, new_encode_dev(inode->i_rdev)); @@ -1394,7 +1394,7 @@ static void inode2sd_v1(void *sd, struct inode *inode, loff_t size) set_sd_v1_nlink(sd_v1, inode->i_nlink); set_sd_v1_size(sd_v1, size); set_sd_v1_atime(sd_v1, inode->i_atime.tv_sec); - set_sd_v1_ctime(sd_v1, inode->i_ctime.tv_sec); + set_sd_v1_ctime(sd_v1, inode_ctime_peek(inode).tv_sec); set_sd_v1_mtime(sd_v1, inode->i_mtime.tv_sec); if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) @@ -1986,7 +1986,7 @@ int reiserfs_new_inode(struct reiserfs_transaction_handle *th, /* uid and gid must already be set by the caller for quota init */ - inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode); + inode->i_mtime = inode->i_atime = inode_ctime_set_current(inode); inode->i_size = i_size; inode->i_blocks = 0; inode->i_bytes = 0; diff --git a/fs/reiserfs/ioctl.c b/fs/reiserfs/ioctl.c index 6bf9b54e58ca..5d129a0b3ce7 100644 --- a/fs/reiserfs/ioctl.c +++ b/fs/reiserfs/ioctl.c @@ -55,7 +55,7 @@ int reiserfs_fileattr_set(struct mnt_idmap *idmap, } sd_attrs_to_i_attrs(flags, inode); REISERFS_I(inode)->i_attrs = flags; - inode->i_ctime = current_time(inode); + inode_ctime_set_current(inode); mark_inode_dirty(inode); err = 0; unlock: @@ -107,7 +107,7 @@ long reiserfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) err = -EFAULT; goto setversion_out; } - inode->i_ctime = current_time(inode); + inode_ctime_set_current(inode); mark_inode_dirty(inode); setversion_out: mnt_drop_write_file(filp); diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c index 52240cc891cf..fa4d11b21279 100644 --- a/fs/reiserfs/namei.c +++ b/fs/reiserfs/namei.c @@ -572,7 +572,7 @@ static int reiserfs_add_entry(struct reiserfs_transaction_handle *th, } dir->i_size += paste_size; - dir->i_mtime = dir->i_ctime = current_time(dir); + dir->i_mtime = inode_ctime_set_current(dir); if (!S_ISDIR(inode->i_mode) && visible) /* reiserfs_mkdir or reiserfs_rename will do that by itself */ reiserfs_update_sd(th, dir); @@ -966,7 +966,8 @@ static int reiserfs_rmdir(struct inode *dir, struct dentry *dentry) inode->i_nlink); clear_nlink(inode); - inode->i_ctime = dir->i_ctime = dir->i_mtime = current_time(dir); + inode_ctime_set_current(inode); + dir->i_mtime = inode_ctime_set_current(dir); reiserfs_update_sd(&th, inode); DEC_DIR_INODE_NLINK(dir) @@ -1070,11 +1071,11 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry) inc_nlink(inode); goto end_unlink; } - inode->i_ctime = current_time(inode); + inode_ctime_set_current(inode); reiserfs_update_sd(&th, inode); dir->i_size -= (de.de_entrylen + DEH_SIZE); - dir->i_ctime = dir->i_mtime = current_time(dir); + dir->i_mtime = inode_ctime_set_current(dir); reiserfs_update_sd(&th, dir); if (!savelink) @@ -1250,7 +1251,7 @@ static int reiserfs_link(struct dentry *old_dentry, struct inode *dir, return err ? err : retval; } - inode->i_ctime = current_time(inode); + inode_ctime_set_current(inode); reiserfs_update_sd(&th, inode); ihold(inode); @@ -1325,7 +1326,6 @@ static int reiserfs_rename(struct mnt_idmap *idmap, int jbegin_count; umode_t old_inode_mode; unsigned long savelink = 1; - struct timespec64 ctime; if (flags & ~RENAME_NOREPLACE) return -EINVAL; @@ -1576,14 +1576,13 @@ static int reiserfs_rename(struct mnt_idmap *idmap, mark_de_hidden(old_de.de_deh + old_de.de_entry_num); journal_mark_dirty(&th, old_de.de_bh); - ctime = current_time(old_dir); - old_dir->i_ctime = old_dir->i_mtime = ctime; - new_dir->i_ctime = new_dir->i_mtime = ctime; + old_dir->i_mtime = inode_ctime_set_current(old_dir); + new_dir->i_mtime = inode_ctime_set_current(new_dir); /* * thanks to Alex Adriaanse <alex_a@caltech.edu> for patch * which adds ctime update of renamed object */ - old_inode->i_ctime = ctime; + inode_ctime_set_current(old_inode); if (new_dentry_inode) { /* adjust link number of the victim */ @@ -1592,7 +1591,7 @@ static int reiserfs_rename(struct mnt_idmap *idmap, } else { drop_nlink(new_dentry_inode); } - new_dentry_inode->i_ctime = ctime; + inode_ctime_set_current(new_dentry_inode); savelink = new_dentry_inode->i_nlink; } diff --git a/fs/reiserfs/stree.c b/fs/reiserfs/stree.c index ce5003986789..c7f0aa0e9a2e 100644 --- a/fs/reiserfs/stree.c +++ b/fs/reiserfs/stree.c @@ -2004,7 +2004,7 @@ int reiserfs_do_truncate(struct reiserfs_transaction_handle *th, if (update_timestamps) { inode->i_mtime = current_time(inode); - inode->i_ctime = current_time(inode); + inode_ctime_set_current(inode); } reiserfs_update_sd(th, inode); @@ -2029,7 +2029,7 @@ int reiserfs_do_truncate(struct reiserfs_transaction_handle *th, if (update_timestamps) { /* this is truncate, not file closing */ inode->i_mtime = current_time(inode); - inode->i_ctime = current_time(inode); + inode_ctime_set_current(inode); } reiserfs_update_sd(th, inode); diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 929acce6e731..0ff67c74aac2 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c @@ -2587,7 +2587,7 @@ static ssize_t reiserfs_quota_write(struct super_block *sb, int type, return err; if (inode->i_size < off + len - towrite) i_size_write(inode, off + len - towrite); - inode->i_mtime = inode->i_ctime = current_time(inode); + inode->i_mtime = inode_ctime_set_current(inode); mark_inode_dirty(inode); return len - towrite; } diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c index 651027967159..469d700d97a9 100644 --- a/fs/reiserfs/xattr.c +++ b/fs/reiserfs/xattr.c @@ -466,12 +466,13 @@ int reiserfs_commit_write(struct file *f, struct page *page, static void update_ctime(struct inode *inode) { struct timespec64 now = current_time(inode); + struct timespec64 ctime = inode_ctime_peek(inode); if (inode_unhashed(inode) || !inode->i_nlink || - timespec64_equal(&inode->i_ctime, &now)) + timespec64_equal(&ctime, &now)) return; - inode->i_ctime = current_time(inode); + inode_ctime_set_current(inode); mark_inode_dirty(inode); } diff --git a/fs/reiserfs/xattr_acl.c b/fs/reiserfs/xattr_acl.c index 138060452678..07ef471aa436 100644 --- a/fs/reiserfs/xattr_acl.c +++ b/fs/reiserfs/xattr_acl.c @@ -285,7 +285,7 @@ __reiserfs_set_acl(struct reiserfs_transaction_handle *th, struct inode *inode, if (error == -ENODATA) { error = 0; if (type == ACL_TYPE_ACCESS) { - inode->i_ctime = current_time(inode); + inode_ctime_set_current(inode); mark_inode_dirty(inode); } } -- 2.41.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
[parent not found: <20230621144507.55591-2-jlayton@kernel.org>]
* Re: [PATCH 01/79] fs: add ctime accessors infrastructure [not found] ` <20230621144507.55591-2-jlayton@kernel.org> @ 2023-06-21 16:34 ` Jan Kara [not found] ` <99b3c749-23d9-6f09-fb75-6a84f3d1b066@kernel.org> ` (2 subsequent siblings) 3 siblings, 0 replies; 9+ messages in thread From: Jan Kara @ 2023-06-21 16:34 UTC (permalink / raw) To: Jeff Layton Cc: Latchesar Ionkov, Rafael J. Wysocki, Darrick J. Wong, Anders Larsen, Carlos Llamas, Andrii Nakryiko, Hugh Dickins, John Johansen, Seth Forshee, Alexander Gordeev, Christoph Hellwig, Mike Marshall, Paulo Alcantara, linux-xfs, Bart Van Assche, Michael Ellerman, John Keeping, Zhang Yi, James Morris, Christophe Leroy, Tyler Hicks, Alan Stern, Christian Borntraeger, devel On Wed 21-06-23 10:45:06, Jeff Layton wrote: > 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> Looks good to me. Feel free to add: Reviewed-by: Jan Kara <jack@suse.cz> Honza > --- > 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 > -- Jan Kara <jack@suse.com> SUSE Labs, CR ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <99b3c749-23d9-6f09-fb75-6a84f3d1b066@kernel.org>]
* Re: [PATCH 01/79] fs: add ctime accessors infrastructure [not found] ` <99b3c749-23d9-6f09-fb75-6a84f3d1b066@kernel.org> @ 2023-06-22 10:14 ` Jeff Layton 0 siblings, 0 replies; 9+ messages in thread From: Jeff Layton @ 2023-06-22 10:14 UTC (permalink / raw) To: Damien Le Moal, Jeremy Kerr, Arnd Bergmann, Michael Ellerman, Nicholas Piggin, Christophe Leroy, Heiko Carstens, Vasily Gorbik, Alexander Gordeev, Christian Borntraeger, Sven Schnelle, Greg Kroah-Hartman, Arve Hjønnevåg, Todd Kjos, Martijn Coenen, Joel Fernandes, Christian Brauner, Carlos Llamas, Suren Baghdasaryan On Thu, 2023-06-22 at 09:46 +0900, Damien Le Moal wrote: > On 6/21/23 23:45, Jeff Layton wrote: > > 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> > > [...] > > > +/** > > + * 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) > > To be consistent with inode_ctime_set(), why not call this one inode_ctime_get() In later patches fetching the ctime for presentation may have side effects on certain filesystems. Using "peek" here is a hint that we want to avoid those side effects in these calls. > ? Also, inode_set_ctime() & inode_get_ctime() may be a little more natural. But > no strong opinion about that though. > I like the consistency of the inode_ctime_* prefix. It makes it simpler to find these calls when grepping, etc. That said, my opinions on naming are pretty loosely-held, so if the consensus is that the names should as you suggest, I'll go along with it. -- Jeff Layton <jlayton@kernel.org> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 01/79] fs: add ctime accessors infrastructure [not found] ` <20230621144507.55591-2-jlayton@kernel.org> 2023-06-21 16:34 ` [PATCH 01/79] fs: add ctime accessors infrastructure Jan Kara [not found] ` <99b3c749-23d9-6f09-fb75-6a84f3d1b066@kernel.org> @ 2023-06-30 22:12 ` Luis Chamberlain 2023-07-12 15:31 ` Randy Dunlap 3 siblings, 0 replies; 9+ messages in thread From: Luis Chamberlain @ 2023-06-30 22:12 UTC (permalink / raw) To: Jeff Layton Cc: Jeremy Kerr, Arnd Bergmann, Michael Ellerman, Nicholas Piggin, Christophe Leroy, Heiko Carstens, Vasily Gorbik, Alexander Gordeev, Christian Borntraeger, Sven Schnelle, Greg Kroah-Hartman, Arve Hjønnevåg, Todd Kjos, Martijn Coenen, Joel Fernandes, Christian Brauner, Carlos Llamas, Suren Baghdasaryan, Dennis Dalessandro On Wed, Jun 21, 2023 at 10:45:06AM -0400, Jeff Layton wrote: > 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> Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Luis ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 01/79] fs: add ctime accessors infrastructure [not found] ` <20230621144507.55591-2-jlayton@kernel.org> ` (2 preceding siblings ...) 2023-06-30 22:12 ` Luis Chamberlain @ 2023-07-12 15:31 ` Randy Dunlap 3 siblings, 0 replies; 9+ messages in thread From: Randy Dunlap @ 2023-07-12 15:31 UTC (permalink / raw) To: Jeff Layton, linux-kernel@vger.kernel.org, Linux FS-devel Mailing List, linux-um Hi Jeff, On arch/um/, (subarch i386 or x86_64), hostfs build fails with: ../fs/hostfs/hostfs_kern.c:520:36: error: incompatible type for arg ument 2 of 'inode_set_ctime_to_ts' ../include/linux/fs.h:1499:73: note: expected 'struct timespec64' b ut argument is of type 'const struct hostfs_timespec *' -- ~Randy ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 00/79] fs: new accessors for inode->i_ctime [not found] <20230621144507.55591-1-jlayton@kernel.org> [not found] ` <20230621144735.55953-1-jlayton@kernel.org> [not found] ` <20230621144507.55591-2-jlayton@kernel.org> @ 2023-06-21 19:21 ` Steven Rostedt 2023-06-21 19:52 ` Jeff Layton 2023-06-30 22:11 ` Luis Chamberlain 2 siblings, 2 replies; 9+ messages in thread From: Steven Rostedt @ 2023-06-21 19:21 UTC (permalink / raw) To: Jeff Layton Cc: Latchesar Ionkov, Rafael J. Wysocki, Darrick J. Wong, Anders Larsen, Carlos Llamas, Andrii Nakryiko, Hugh Dickins, John Johansen, Seth Forshee, Alexander Gordeev, Christoph Hellwig, Mike Marshall, Paulo Alcantara, linux-xfs, Bart Van Assche, Michael Ellerman, John Keeping, Zhang Yi, James Morris, Christophe Leroy, Tyler Hicks, Alan Stern, Christian Borntraeger, devel On Wed, 21 Jun 2023 10:45:05 -0400 Jeff Layton <jlayton@kernel.org> wrote: > Most of this conversion was done via coccinelle, with a few of the more > non-standard accesses done by hand. There should be no behavioral > changes with this set. That will come later, as we convert individual > filesystems to use multigrain timestamps. BTW, Linus has suggested to me that whenever a conccinelle script is used, it should be included in the change log. -- Steve ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 00/79] fs: new accessors for inode->i_ctime 2023-06-21 19:21 ` [PATCH 00/79] fs: new accessors for inode->i_ctime Steven Rostedt @ 2023-06-21 19:52 ` Jeff Layton 2023-06-23 12:41 ` Christian Brauner 2023-06-30 22:11 ` Luis Chamberlain 1 sibling, 1 reply; 9+ messages in thread From: Jeff Layton @ 2023-06-21 19:52 UTC (permalink / raw) To: Steven Rostedt Cc: Latchesar Ionkov, Rafael J. Wysocki, Darrick J. Wong, Anders Larsen, Carlos Llamas, Andrii Nakryiko, Hugh Dickins, John Johansen, Seth Forshee, Alexander Gordeev, Christoph Hellwig, Mike Marshall, Paulo Alcantara, linux-xfs, Bart Van Assche, Michael Ellerman, John Keeping, Zhang Yi, James Morris, Christophe Leroy, Tyler Hicks, Alan Stern, Christian Borntraeger, devel On Wed, 2023-06-21 at 15:21 -0400, Steven Rostedt wrote: > On Wed, 21 Jun 2023 10:45:05 -0400 > Jeff Layton <jlayton@kernel.org> wrote: > > > Most of this conversion was done via coccinelle, with a few of the more > > non-standard accesses done by hand. There should be no behavioral > > changes with this set. That will come later, as we convert individual > > filesystems to use multigrain timestamps. > > BTW, Linus has suggested to me that whenever a conccinelle script is used, > it should be included in the change log. > Ok, here's what I have. I note again that my usage of coccinelle is pretty primitive, so I ended up doing a fair bit of by-hand fixing after applying these. Given the way that this change is broken up into 77 patches by subsystem, to which changelogs should I add it? I could add it to the "infrastructure" patch, but that's the one where I _didn't_ use it. Maybe to patch #79 (the one that renames i_ctime)? ------------------------8<------------------------------ @@ expression inode; @@ - inode->i_ctime = current_time(inode) + inode_set_current_ctime(inode) @@ expression inode; @@ - inode->i_ctime = inode->i_mtime = current_time(inode) + inode->i_mtime = inode_set_current_ctime(inode) @@ struct inode *inode; expression value; @@ - inode->i_ctime = value; + inode_set_ctime(inode, value); @@ struct inode *inode; expression val; @@ - inode->i_ctime.tv_sec = val + inode_set_ctime_sec(inode, val) @@ struct inode *inode; expression val; @@ - inode->i_ctime.tv_nsec = val + inode_set_ctime_nsec(inode, val) @@ struct inode *inode; @@ - inode->i_ctime + inode_ctime_peek(inode) ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 00/79] fs: new accessors for inode->i_ctime 2023-06-21 19:52 ` Jeff Layton @ 2023-06-23 12:41 ` Christian Brauner 0 siblings, 0 replies; 9+ messages in thread From: Christian Brauner @ 2023-06-23 12:41 UTC (permalink / raw) To: Jeff Layton Cc: Latchesar Ionkov, Rafael J. Wysocki, Darrick J. Wong, Anders Larsen, Carlos Llamas, Andrii Nakryiko, Hugh Dickins, John Johansen, Seth Forshee, Alexander Gordeev, Christoph Hellwig, Mike Marshall, Paulo Alcantara, linux-xfs, Bart Van Assche, Michael Ellerman, John Keeping, Zhang Yi, James Morris, Christophe Leroy, Tyler Hicks, Alan Stern, Christian Borntraeger, devel On Wed, Jun 21, 2023 at 03:52:27PM -0400, Jeff Layton wrote: > On Wed, 2023-06-21 at 15:21 -0400, Steven Rostedt wrote: > > On Wed, 21 Jun 2023 10:45:05 -0400 > > Jeff Layton <jlayton@kernel.org> wrote: > > > > > Most of this conversion was done via coccinelle, with a few of the more > > > non-standard accesses done by hand. There should be no behavioral > > > changes with this set. That will come later, as we convert individual > > > filesystems to use multigrain timestamps. > > > > BTW, Linus has suggested to me that whenever a conccinelle script is used, > > it should be included in the change log. > > > > Ok, here's what I have. I note again that my usage of coccinelle is > pretty primitive, so I ended up doing a fair bit of by-hand fixing after > applying these. > > Given the way that this change is broken up into 77 patches by > subsystem, to which changelogs should I add it? I could add it to the > "infrastructure" patch, but that's the one where I _didn't_ use it. > > Maybe to patch #79 (the one that renames i_ctime)? That works. I can also put this into a merge commit or pr message. _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 00/79] fs: new accessors for inode->i_ctime 2023-06-21 19:21 ` [PATCH 00/79] fs: new accessors for inode->i_ctime Steven Rostedt 2023-06-21 19:52 ` Jeff Layton @ 2023-06-30 22:11 ` Luis Chamberlain 1 sibling, 0 replies; 9+ messages in thread From: Luis Chamberlain @ 2023-06-30 22:11 UTC (permalink / raw) To: Steven Rostedt, Julia Lawall, Takashi Iwai Cc: Jeff Layton, Jeremy Kerr, Arnd Bergmann, Michael Ellerman, Nicholas Piggin, Christophe Leroy, Heiko Carstens, Vasily Gorbik, Alexander Gordeev, Christian Borntraeger, Sven Schnelle, Greg Kroah-Hartman, Arve Hjønnevåg, Todd Kjos, Martijn Coenen, Joel Fernandes, Christian Brauner, Carlos Llamas, Suren Baghdasaryan On Wed, Jun 21, 2023 at 03:21:41PM -0400, Steven Rostedt wrote: > On Wed, 21 Jun 2023 10:45:05 -0400 > Jeff Layton <jlayton@kernel.org> wrote: > > > Most of this conversion was done via coccinelle, with a few of the more > > non-standard accesses done by hand. There should be no behavioral > > changes with this set. That will come later, as we convert individual > > filesystems to use multigrain timestamps. > > BTW, Linus has suggested to me that whenever a conccinelle script is used, > it should be included in the change log. Sometimes people like the coccinelle included in the commit, sometimes people don't [0], it really ends up being up to a subjective maintainer preference. A compromise could be to use git notes as these are optional, however if we want to go down that path we should try to make a general consensus on it so we can send a consistent message. [0] https://lore.kernel.org/all/20230512073100.GC32559@twin.jikos.cz/ Luis ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-07-12 15:31 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20230621144507.55591-1-jlayton@kernel.org>
[not found] ` <20230621144735.55953-1-jlayton@kernel.org>
2023-06-21 14:46 ` [PATCH 60/79] reiserfs: switch to new ctime accessors Jeff Layton
[not found] ` <20230621144507.55591-2-jlayton@kernel.org>
2023-06-21 16:34 ` [PATCH 01/79] fs: add ctime accessors infrastructure Jan Kara
[not found] ` <99b3c749-23d9-6f09-fb75-6a84f3d1b066@kernel.org>
2023-06-22 10:14 ` Jeff Layton
2023-06-30 22:12 ` Luis Chamberlain
2023-07-12 15:31 ` Randy Dunlap
2023-06-21 19:21 ` [PATCH 00/79] fs: new accessors for inode->i_ctime Steven Rostedt
2023-06-21 19:52 ` Jeff Layton
2023-06-23 12:41 ` Christian Brauner
2023-06-30 22:11 ` Luis Chamberlain
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).