Skip to content

Commit 9448765

Browse files
jtlaytonbrauner
authored andcommitted
smb: 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. Acked-by: Tom Talpey <[email protected]> Reviewed-by: Sergey Senozhatsky <[email protected]> Signed-off-by: Jeff Layton <[email protected]> Acked-by: Steve French <[email protected]> Message-Id: <[email protected]> Signed-off-by: Christian Brauner <[email protected]>
1 parent a584512 commit 9448765

File tree

5 files changed

+18
-16
lines changed

5 files changed

+18
-16
lines changed

fs/smb/client/file.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,7 +1085,7 @@ int cifs_close(struct inode *inode, struct file *file)
10851085
!test_bit(CIFS_INO_CLOSE_ON_LOCK, &cinode->flags) &&
10861086
dclose) {
10871087
if (test_and_clear_bit(CIFS_INO_MODIFIED_ATTR, &cinode->flags)) {
1088-
inode->i_ctime = inode->i_mtime = current_time(inode);
1088+
inode->i_mtime = inode_set_ctime_current(inode);
10891089
}
10901090
spin_lock(&cinode->deferred_lock);
10911091
cifs_add_deferred_close(cfile, dclose);
@@ -2596,7 +2596,7 @@ static int cifs_partialpagewrite(struct page *page, unsigned from, unsigned to)
25962596
write_data, to - from, &offset);
25972597
cifsFileInfo_put(open_file);
25982598
/* Does mm or vfs already set times? */
2599-
inode->i_atime = inode->i_mtime = inode->i_ctime = current_time(inode);
2599+
inode->i_atime = inode->i_mtime = inode_set_ctime_current(inode);
26002600
if ((bytes_written > 0) && (offset))
26012601
rc = 0;
26022602
else if (bytes_written < 0)

fs/smb/client/fscache.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,13 @@ void cifs_fscache_fill_coherency(struct inode *inode,
5050
struct cifs_fscache_inode_coherency_data *cd)
5151
{
5252
struct cifsInodeInfo *cifsi = CIFS_I(inode);
53+
struct timespec64 ctime = inode_get_ctime(inode);
5354

5455
memset(cd, 0, sizeof(*cd));
5556
cd->last_write_time_sec = cpu_to_le64(cifsi->netfs.inode.i_mtime.tv_sec);
5657
cd->last_write_time_nsec = cpu_to_le32(cifsi->netfs.inode.i_mtime.tv_nsec);
57-
cd->last_change_time_sec = cpu_to_le64(cifsi->netfs.inode.i_ctime.tv_sec);
58-
cd->last_change_time_nsec = cpu_to_le32(cifsi->netfs.inode.i_ctime.tv_nsec);
58+
cd->last_change_time_sec = cpu_to_le64(ctime.tv_sec);
59+
cd->last_change_time_nsec = cpu_to_le32(ctime.tv_nsec);
5960
}
6061

6162

fs/smb/client/inode.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ cifs_fattr_to_inode(struct inode *inode, struct cifs_fattr *fattr)
172172
else
173173
inode->i_atime = fattr->cf_atime;
174174
inode->i_mtime = fattr->cf_mtime;
175-
inode->i_ctime = fattr->cf_ctime;
175+
inode_set_ctime_to_ts(inode, fattr->cf_ctime);
176176
inode->i_rdev = fattr->cf_rdev;
177177
cifs_nlink_fattr_to_inode(inode, fattr);
178178
inode->i_uid = fattr->cf_uid;
@@ -1744,9 +1744,9 @@ int cifs_unlink(struct inode *dir, struct dentry *dentry)
17441744
cifs_inode = CIFS_I(inode);
17451745
cifs_inode->time = 0; /* will force revalidate to get info
17461746
when needed */
1747-
inode->i_ctime = current_time(inode);
1747+
inode_set_ctime_current(inode);
17481748
}
1749-
dir->i_ctime = dir->i_mtime = current_time(dir);
1749+
dir->i_mtime = inode_set_ctime_current(dir);
17501750
cifs_inode = CIFS_I(dir);
17511751
CIFS_I(dir)->time = 0; /* force revalidate of dir as well */
17521752
unlink_out:
@@ -2060,8 +2060,8 @@ int cifs_rmdir(struct inode *inode, struct dentry *direntry)
20602060
*/
20612061
cifsInode->time = 0;
20622062

2063-
d_inode(direntry)->i_ctime = inode->i_ctime = inode->i_mtime =
2064-
current_time(inode);
2063+
inode_set_ctime_current(d_inode(direntry));
2064+
inode->i_mtime = inode_set_ctime_current(inode);
20652065

20662066
rmdir_exit:
20672067
free_dentry_path(page);
@@ -2267,8 +2267,8 @@ cifs_rename2(struct mnt_idmap *idmap, struct inode *source_dir,
22672267
/* force revalidate to go get info when needed */
22682268
CIFS_I(source_dir)->time = CIFS_I(target_dir)->time = 0;
22692269

2270-
source_dir->i_ctime = source_dir->i_mtime = target_dir->i_ctime =
2271-
target_dir->i_mtime = current_time(source_dir);
2270+
source_dir->i_mtime = target_dir->i_mtime = inode_set_ctime_to_ts(source_dir,
2271+
inode_set_ctime_current(target_dir));
22722272

22732273
cifs_rename_exit:
22742274
kfree(info_buf_source);

fs/smb/client/smb2ops.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1396,7 +1396,8 @@ smb2_close_getattr(const unsigned int xid, struct cifs_tcon *tcon,
13961396
if (file_inf.LastWriteTime)
13971397
inode->i_mtime = cifs_NTtimeToUnix(file_inf.LastWriteTime);
13981398
if (file_inf.ChangeTime)
1399-
inode->i_ctime = cifs_NTtimeToUnix(file_inf.ChangeTime);
1399+
inode_set_ctime_to_ts(inode,
1400+
cifs_NTtimeToUnix(file_inf.ChangeTime));
14001401
if (file_inf.LastAccessTime)
14011402
inode->i_atime = cifs_NTtimeToUnix(file_inf.LastAccessTime);
14021403

fs/smb/server/smb2pdu.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4779,7 +4779,7 @@ static int find_file_posix_info(struct smb2_query_info_rsp *rsp,
47794779
file_info->LastAccessTime = cpu_to_le64(time);
47804780
time = ksmbd_UnixTimeToNT(inode->i_mtime);
47814781
file_info->LastWriteTime = cpu_to_le64(time);
4782-
time = ksmbd_UnixTimeToNT(inode->i_ctime);
4782+
time = ksmbd_UnixTimeToNT(inode_get_ctime(inode));
47834783
file_info->ChangeTime = cpu_to_le64(time);
47844784
file_info->DosAttributes = fp->f_ci->m_fattr;
47854785
file_info->Inode = cpu_to_le64(inode->i_ino);
@@ -5422,7 +5422,7 @@ int smb2_close(struct ksmbd_work *work)
54225422
rsp->LastAccessTime = cpu_to_le64(time);
54235423
time = ksmbd_UnixTimeToNT(inode->i_mtime);
54245424
rsp->LastWriteTime = cpu_to_le64(time);
5425-
time = ksmbd_UnixTimeToNT(inode->i_ctime);
5425+
time = ksmbd_UnixTimeToNT(inode_get_ctime(inode));
54265426
rsp->ChangeTime = cpu_to_le64(time);
54275427
ksmbd_fd_put(work, fp);
54285428
} else {
@@ -5644,7 +5644,7 @@ static int set_file_basic_info(struct ksmbd_file *fp,
56445644
if (file_info->ChangeTime)
56455645
attrs.ia_ctime = ksmbd_NTtimeToUnix(file_info->ChangeTime);
56465646
else
5647-
attrs.ia_ctime = inode->i_ctime;
5647+
attrs.ia_ctime = inode_get_ctime(inode);
56485648

56495649
if (file_info->LastWriteTime) {
56505650
attrs.ia_mtime = ksmbd_NTtimeToUnix(file_info->LastWriteTime);
@@ -5689,7 +5689,7 @@ static int set_file_basic_info(struct ksmbd_file *fp,
56895689
return -EACCES;
56905690

56915691
inode_lock(inode);
5692-
inode->i_ctime = attrs.ia_ctime;
5692+
inode_set_ctime_to_ts(inode, attrs.ia_ctime);
56935693
attrs.ia_valid &= ~ATTR_CTIME;
56945694
rc = notify_change(idmap, dentry, &attrs, NULL);
56955695
inode_unlock(inode);

0 commit comments

Comments
 (0)