diff options
author | Paulo Alcantara <pc@manguebit.com> | 2024-01-19 01:08:29 -0300 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2024-01-19 10:31:00 -0600 |
commit | 66c9314b61ed5b7bfcff0d89359aa0f975c0ab53 (patch) | |
tree | c144f3141f957f39690e784a912abaf1635d6563 /fs/smb/client/readdir.c | |
parent | f83709b9e0eb7048d74ba4515f268c6eacbce9c9 (diff) | |
download | lwn-66c9314b61ed5b7bfcff0d89359aa0f975c0ab53.tar.gz lwn-66c9314b61ed5b7bfcff0d89359aa0f975c0ab53.zip |
smb: client: don't clobber ->i_rdev from cached reparse points
Don't clobber ->i_rdev from valid reparse inodes over readdir(2) as it
can't be provided by query dir responses.
Signed-off-by: Paulo Alcantara <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/smb/client/readdir.c')
-rw-r--r-- | fs/smb/client/readdir.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/smb/client/readdir.c b/fs/smb/client/readdir.c index e24684112ab0..94255401b38d 100644 --- a/fs/smb/client/readdir.c +++ b/fs/smb/client/readdir.c @@ -133,14 +133,14 @@ retry: * Query dir responses don't provide enough * information about reparse points other than * their reparse tags. Save an invalidation by - * not clobbering the existing mode, size and - * symlink target (if any) when reparse tag and - * ctime haven't changed. + * not clobbering some existing attributes when + * reparse tag and ctime haven't changed. */ rc = 0; if (fattr->cf_cifsattrs & ATTR_REPARSE) { if (likely(reparse_inode_match(inode, fattr))) { fattr->cf_mode = inode->i_mode; + fattr->cf_rdev = inode->i_rdev; fattr->cf_eof = CIFS_I(inode)->server_eof; fattr->cf_symlink_target = NULL; } else { |