cifs: Add new mount parameter "acdirmax" to allow caching directory metadata
authorSteve French <stfrench@microsoft.com>
Tue, 23 Feb 2021 21:50:57 +0000 (15:50 -0600)
committerSteve French <stfrench@microsoft.com>
Thu, 25 Feb 2021 17:47:42 +0000 (11:47 -0600)
commit4c9f948142a550af416a2bfb5e56d29ce29e92cf
tree506950f721e6a7479c7ca71eb4492bc72af12deb
parentf1ebe48dd3490adeff63b2d86ac7567aa018bd5d
cifs: Add new mount parameter "acdirmax" to allow caching directory metadata

nfs and cifs on Linux currently have a mount parameter "actimeo" to control
metadata (attribute) caching but cifs does not have additional mount
parameters to allow distinguishing between caching directory metadata
(e.g. needed to revalidate paths) and that for files.

Add new mount parameter "acdirmax" to allow caching metadata for
directories more loosely than file data.  NFS adjusts metadata
caching from acdirmin to acdirmax (and another two mount parms
for files) but to reduce complexity, it is safer to just introduce
the one mount parm to allow caching directories longer. The
defaults for acdirmax and actimeo (for cifs.ko) are conservative,
1 second (NFS defaults acdirmax to 60 seconds). For many workloads,
setting acdirmax to a higher value is safe and will improve
performance.  This patch leaves unchanged the default values
for caching metadata for files and directories but gives the
user more flexibility in adjusting them safely for their workload
via the new mount parm.

Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
Reviewed-By: Tom Talpey <tom@talpey.com>
fs/cifs/cifsfs.c
fs/cifs/connect.c
fs/cifs/fs_context.c
fs/cifs/fs_context.h