diff options
author | Paulo Alcantara (SUSE) <pc@cjr.nz> | 2019-12-18 22:11:37 +0100 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2019-12-23 16:04:44 +0100 |
commit | 046aca3c25fd28da591f59a2dc1a01848e81e0b2 (patch) | |
tree | 88c92721b67434a5ae982956cb5f300a6bcd8297 /lib/lz4 | |
parent | cifs: Adjust indentation in smb2_open_file (diff) | |
download | linux-046aca3c25fd28da591f59a2dc1a01848e81e0b2.tar.xz linux-046aca3c25fd28da591f59a2dc1a01848e81e0b2.zip |
cifs: Optimize readdir on reparse points
When listing a directory with thounsands of files and most of them are
reparse points, we simply marked all those dentries for revalidation
and then sending additional (compounded) create/getinfo/close requests
for each of them.
Instead, upon receiving a response from an SMB2_QUERY_DIRECTORY
(FileIdFullDirectoryInformation) command, the directory entries that
have a file attribute of FILE_ATTRIBUTE_REPARSE_POINT will contain an
EaSize field with a reparse tag in it, so we parse it and mark the
dentry for revalidation only if it is a DFS or a symlink.
Signed-off-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'lib/lz4')
0 files changed, 0 insertions, 0 deletions