Skip to content

Commit 79e59ae

Browse files
author
Rafael Aquini
committed
shmem: convert to ctime accessor functions
JIRA: https://issues.redhat.com/browse/RHEL-27743 Conflicts: * mm/shmem.c: minor context conflicts on the 2nd, 3rd, and 4th hunks due to RHEL missing commits 256c8ae ("fs: introduce dedicated idmap type for mounts") and its follow-up series, as well as due to out-of-order backport of commit 7a80e5b ("shmem: support idmapped mounts for tmpfs") which folds bits of commit 138060b ("fs: pass dentry to set acl method") This patch is a backport of the following upstream commit: commit 6528733 Author: Jeff Layton <[email protected]> Date: Wed Jul 5 15:01:52 2023 -0400 shmem: convert to ctime accessor functions In later patches, we're going to change how the inode's ctime field is used. Switch to using accessor functions instead of raw accesses of inode->i_ctime. Signed-off-by: Jeff Layton <[email protected]> Reviewed-by: Jan Kara <[email protected]> Message-Id: <[email protected]> Signed-off-by: Christian Brauner <[email protected]> Signed-off-by: Rafael Aquini <[email protected]>
1 parent d14035b commit 79e59ae

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

mm/shmem.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1136,7 +1136,7 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, loff_t lend,
11361136
void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend)
11371137
{
11381138
shmem_undo_range(inode, lstart, lend, false);
1139-
inode->i_ctime = inode->i_mtime = current_time(inode);
1139+
inode->i_mtime = inode_set_ctime_current(inode);
11401140
inode_inc_iversion(inode);
11411141
}
11421142
EXPORT_SYMBOL_GPL(shmem_truncate_range);
@@ -1245,9 +1245,9 @@ static int shmem_setattr(struct user_namespace *mnt_userns,
12451245
if (attr->ia_valid & ATTR_MODE)
12461246
error = posix_acl_chmod(mnt_userns, inode, inode->i_mode);
12471247
if (!error && update_ctime) {
1248-
inode->i_ctime = current_time(inode);
1248+
inode_set_ctime_current(inode);
12491249
if (update_mtime)
1250-
inode->i_mtime = inode->i_ctime;
1250+
inode->i_mtime = inode_get_ctime(inode);
12511251
inode_inc_iversion(inode);
12521252
}
12531253
return error;
@@ -2465,7 +2465,7 @@ static struct inode *__shmem_get_inode(struct user_namespace *mnt_userns,
24652465
inode->i_ino = ino;
24662466
inode_init_owner(mnt_userns, inode, dir, mode);
24672467
inode->i_blocks = 0;
2468-
inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
2468+
inode->i_atime = inode->i_mtime = inode_set_ctime_current(inode);
24692469
inode->i_generation = get_random_u32();
24702470
info = SHMEM_I(inode);
24712471
memset(info, 0, (char *)inode - (char *)info);
@@ -3214,7 +3214,7 @@ shmem_mknod(struct user_namespace *mnt_userns, struct inode *dir,
32143214

32153215
error = 0;
32163216
dir->i_size += BOGO_DIRENT_SIZE;
3217-
dir->i_ctime = dir->i_mtime = current_time(dir);
3217+
dir->i_mtime = inode_set_ctime_current(dir);
32183218
inode_inc_iversion(dir);
32193219
d_instantiate(dentry, inode);
32203220
dget(dentry); /* Extra count - pin the dentry in core */
@@ -3296,7 +3296,8 @@ static int shmem_link(struct dentry *old_dentry, struct inode *dir, struct dentr
32963296
}
32973297

32983298
dir->i_size += BOGO_DIRENT_SIZE;
3299-
inode->i_ctime = dir->i_ctime = dir->i_mtime = current_time(inode);
3299+
dir->i_mtime = inode_set_ctime_to_ts(dir,
3300+
inode_set_ctime_current(inode));
33003301
inode_inc_iversion(dir);
33013302
inc_nlink(inode);
33023303
ihold(inode); /* New dentry reference */
@@ -3314,7 +3315,8 @@ static int shmem_unlink(struct inode *dir, struct dentry *dentry)
33143315
shmem_free_inode(inode->i_sb);
33153316

33163317
dir->i_size -= BOGO_DIRENT_SIZE;
3317-
inode->i_ctime = dir->i_ctime = dir->i_mtime = current_time(inode);
3318+
dir->i_mtime = inode_set_ctime_to_ts(dir,
3319+
inode_set_ctime_current(inode));
33183320
inode_inc_iversion(dir);
33193321
drop_nlink(inode);
33203322
dput(dentry); /* Undo the count from "create" - this does all the work */
@@ -3457,7 +3459,7 @@ static int shmem_symlink(struct user_namespace *mnt_userns, struct inode *dir,
34573459
folio_put(folio);
34583460
}
34593461
dir->i_size += BOGO_DIRENT_SIZE;
3460-
dir->i_ctime = dir->i_mtime = current_time(dir);
3462+
dir->i_mtime = inode_set_ctime_current(dir);
34613463
inode_inc_iversion(dir);
34623464
d_instantiate(dentry, inode);
34633465
dget(dentry);
@@ -3529,7 +3531,7 @@ static int shmem_fileattr_set(struct user_namespace *mnt_userns,
35293531
(fa->flags & SHMEM_FL_USER_MODIFIABLE);
35303532

35313533
shmem_set_inode_flags(inode, info->fsflags);
3532-
inode->i_ctime = current_time(inode);
3534+
inode_set_ctime_current(inode);
35333535
inode_inc_iversion(inode);
35343536
return 0;
35353537
}
@@ -3599,7 +3601,7 @@ static int shmem_xattr_handler_set(const struct xattr_handler *handler,
35993601
name = xattr_full_name(handler, name);
36003602
err = simple_xattr_set(&info->xattrs, name, value, size, flags, NULL);
36013603
if (!err) {
3602-
inode->i_ctime = current_time(inode);
3604+
inode_set_ctime_current(inode);
36033605
inode_inc_iversion(inode);
36043606
}
36053607
return err;

0 commit comments

Comments
 (0)