Skip to content

Commit 6e70e26

Browse files
committed
SMB3: handle new statx fields
We weren't returning the creation time or the two easily supported attributes (ENCRYPTED or COMPRESSED) for the getattr call to allow statx to return these fields. Signed-off-by: Steve French <[email protected]> Reviewed-by: Ronnie Sahlberg <[email protected]>\ Acked-by: Jeff Layton <[email protected]> CC: Stable <[email protected]> Reviewed-by: Pavel Shilovsky <[email protected]>
1 parent 0603c96 commit 6e70e26

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

fs/cifs/inode.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,8 @@ cifs_unix_basic_to_fattr(struct cifs_fattr *fattr, FILE_UNIX_BASIC_INFO *info,
234234
fattr->cf_atime = cifs_NTtimeToUnix(info->LastAccessTime);
235235
fattr->cf_mtime = cifs_NTtimeToUnix(info->LastModificationTime);
236236
fattr->cf_ctime = cifs_NTtimeToUnix(info->LastStatusChange);
237+
/* old POSIX extensions don't get create time */
238+
237239
fattr->cf_mode = le64_to_cpu(info->Permissions);
238240

239241
/*
@@ -2024,6 +2026,19 @@ int cifs_getattr(const struct path *path, struct kstat *stat,
20242026
stat->blksize = CIFS_MAX_MSGSIZE;
20252027
stat->ino = CIFS_I(inode)->uniqueid;
20262028

2029+
/* old CIFS Unix Extensions doesn't return create time */
2030+
if (CIFS_I(inode)->createtime) {
2031+
stat->result_mask |= STATX_BTIME;
2032+
stat->btime =
2033+
cifs_NTtimeToUnix(cpu_to_le64(CIFS_I(inode)->createtime));
2034+
}
2035+
2036+
stat->attributes_mask |= (STATX_ATTR_COMPRESSED | STATX_ATTR_ENCRYPTED);
2037+
if (CIFS_I(inode)->cifsAttrs & FILE_ATTRIBUTE_COMPRESSED)
2038+
stat->attributes |= STATX_ATTR_COMPRESSED;
2039+
if (CIFS_I(inode)->cifsAttrs & FILE_ATTRIBUTE_ENCRYPTED)
2040+
stat->attributes |= STATX_ATTR_ENCRYPTED;
2041+
20272042
/*
20282043
* If on a multiuser mount without unix extensions or cifsacl being
20292044
* enabled, and the admin hasn't overridden them, set the ownership

0 commit comments

Comments
 (0)