From: Steve French Date: Wed, 21 Oct 2020 05:15:42 +0000 (-0500) Subject: smb3: do not try to cache root directory if dir leases not supported X-Git-Tag: v5.10-rc1~42^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3c6e65e679182d55779ef6f8582f0945af4319b0;p=thirdparty%2Fkernel%2Flinux.git smb3: do not try to cache root directory if dir leases not supported To servers which do not support directory leases (e.g. Samba) it is wasteful to try to open_shroot (ie attempt to cache the root directory handle). Skip attempt to open_shroot when server does not indicate support for directory leases. Cuts the number of requests on mount from 17 to 15, and cuts the number of requests on stat of the root directory from 4 to 3. Signed-off-by: Steve French CC: Stable # v5.1+ --- diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index d096cfda56eb5..3a9980bf0d6ee 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -3608,7 +3608,10 @@ cifs_get_tcon(struct cifs_ses *ses, struct smb_vol *volume_info) */ tcon->retry = volume_info->retry; tcon->nocase = volume_info->nocase; - tcon->nohandlecache = volume_info->nohandlecache; + if (ses->server->capabilities & SMB2_GLOBAL_CAP_DIRECTORY_LEASING) + tcon->nohandlecache = volume_info->nohandlecache; + else + tcon->nohandlecache = 1; tcon->nodelete = volume_info->nodelete; tcon->local_lease = volume_info->local_lease; INIT_LIST_HEAD(&tcon->pending_opens);