smb3: log warning if CSC policy conflicts with linux kernel client cache mount option
diff mbox series

Message ID CAH2r5mtzztgoW91TvG_wTYju10dNJ+=r8Ncx3f3bebstMZiCpA@mail.gmail.com
State New
Headers show
Series
  • smb3: log warning if CSC policy conflicts with linux kernel client cache mount option
Related show

Commit Message

Steve French Sept. 3, 2019, 10:54 p.m. UTC
If the server config (e.g. Samba smb.conf "csc policy = disable)
for the share indicates that the share should not be cached, log
a warning message in the Linux kernel client if forced client side
caching ("cache=ro" or "cache=singleclient") was requested on mount.

Signed-off-by: Steve French <stfrench@microsoft.com>
---
 fs/cifs/connect.c | 8 ++++++++
 1 file changed, 8 insertions(+)

     /*
      * We can have only one retry value for a connection to a share so for
      * resources mounted more than once to the same server share the last

Comments

ronnie sahlberg Sept. 3, 2019, 11 p.m. UTC | #1
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>


On Wed, Sep 4, 2019 at 8:54 AM Steve French <smfrench@gmail.com> wrote:
>
> If the server config (e.g. Samba smb.conf "csc policy = disable)
> for the share indicates that the share should not be cached, log
> a warning message in the Linux kernel client if forced client side
> caching ("cache=ro" or "cache=singleclient") was requested on mount.
>
> Signed-off-by: Steve French <stfrench@microsoft.com>
> ---
>  fs/cifs/connect.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
> index d9a995588c74..85f8d943a05a 100644
> --- a/fs/cifs/connect.c
> +++ b/fs/cifs/connect.c
> @@ -3478,6 +3478,14 @@ cifs_get_tcon(struct cifs_ses *ses, struct
> smb_vol *volume_info)
>          tcon->use_resilient = true;
>      }
>
> +    /* If the user really knows what they are doing they can override */
> +    if (tcon->share_flags & SMB2_SHAREFLAG_NO_CACHING) {
> +        if (volume_info->cache_ro)
> +            cifs_dbg(VFS, "cache=ro requested on mount but NO_CACHING
> flag set on share\n");
> +        else if (volume_info->cache_rw)
> +            cifs_dbg(VFS, "cache=singleclient requested on mount but
> NO_CACHING flag set on share\n");
> +    }
> +
>      /*
>       * We can have only one retry value for a connection to a share so for
>       * resources mounted more than once to the same server share the last
>
> --
> Thanks,
>
> Steve

Patch
diff mbox series

From dae931c02aed14427ea4022c7e8038ab3103b4d9 Mon Sep 17 00:00:00 2001
From: Steve French <stfrench@microsoft.com>
Date: Tue, 3 Sep 2019 17:49:46 -0500
Subject: [PATCH] smb3: log warning if CSC policy conflicts with cache mount
 option

If the server config (e.g. Samba smb.conf "csc policy = disable)
for the share indicates that the share should not be cached, log
a warning message if forced client side caching ("cache=ro" or
"cache=singleclient") is requested on mount.

Signed-off-by: Steve French <stfrench@microsoft.com>
---
 fs/cifs/connect.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index d9a995588c74..85f8d943a05a 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -3478,6 +3478,14 @@  cifs_get_tcon(struct cifs_ses *ses, struct smb_vol *volume_info)
 		tcon->use_resilient = true;
 	}
 
+	/* If the user really knows what they are doing they can override */
+	if (tcon->share_flags & SMB2_SHAREFLAG_NO_CACHING) {
+		if (volume_info->cache_ro)
+			cifs_dbg(VFS, "cache=ro requested on mount but NO_CACHING flag set on share\n");
+		else if (volume_info->cache_rw)
+			cifs_dbg(VFS, "cache=singleclient requested on mount but NO_CACHING flag set on share\n");
+	}
+
 	/*
 	 * We can have only one retry value for a connection to a share so for
 	 * resources mounted more than once to the same server share the last
-- 
2.20.1