Re: [PATCH 4/4] smb: client: improve DFS mount check

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Greg,

Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> writes:

> On Wed, Jul 12, 2023 at 06:10:27PM -0300, Paulo Alcantara wrote:
>> Paulo Alcantara <pc@xxxxxxxxxxxxx> writes:
>> 
>> > Some servers may return error codes from REQ_GET_DFS_REFERRAL requests
>> > that are unexpected by the client, so to make it easier, assume
>> > non-DFS mounts when the client can't get the initial DFS referral of
>> > @ctx->UNC in dfs_mount_share().
>> >
>> > Signed-off-by: Paulo Alcantara (SUSE) <pc@xxxxxxxxxxxxx>
>> > ---
>> >  fs/smb/client/dfs.c | 5 +++--
>> >  1 file changed, 3 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/fs/smb/client/dfs.c b/fs/smb/client/dfs.c
>> > index afbaef05a1f1..a7f2e0608adf 100644
>> 
>> Stable team, could you please pick this up as a fix for
>> 
>>         8e3554150d6c ("cifs: fix sharing of DFS connections")
>> 
>> The upstream commit is 5f2a0afa9890 ("smb: client: improve DFS mount check").
>
> Does not apply cleanly, can you provide a working backport?

Find attached backport of
>From 435048ee0f477947d1d93f5a9b60b2d2df2b7554 Mon Sep 17 00:00:00 2001
From: Paulo Alcantara <pc@xxxxxxxxxxxxx>
Date: Tue, 27 Jun 2023 21:24:50 -0300
Subject: [PATCH stable v6.3] smb: client: improve DFS mount check

Some servers may return error codes from REQ_GET_DFS_REFERRAL requests
that are unexpected by the client, so to make it easier, assume
non-DFS mounts when the client can't get the initial DFS referral of
@ctx->UNC in dfs_mount_share().

Signed-off-by: Paulo Alcantara (SUSE) <pc@xxxxxxxxxxxxx>
Signed-off-by: Steve French <stfrench@xxxxxxxxxxxxx>
---
 fs/cifs/dfs.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/cifs/dfs.c b/fs/cifs/dfs.c
index 267536a7531d..fcf536eb5fe1 100644
--- a/fs/cifs/dfs.c
+++ b/fs/cifs/dfs.c
@@ -296,8 +296,9 @@ int dfs_mount_share(struct cifs_mount_ctx *mnt_ctx, bool *isdfs)
 	if (!nodfs) {
 		rc = dfs_get_referral(mnt_ctx, ctx->UNC + 1, NULL, NULL);
 		if (rc) {
-			if (rc != -ENOENT && rc != -EOPNOTSUPP && rc != -EIO)
-				return rc;
+			cifs_dbg(FYI, "%s: no dfs referral for %s: %d\n",
+				 __func__, ctx->UNC + 1, rc);
+			cifs_dbg(FYI, "%s: assuming non-dfs mount...\n", __func__);
 			nodfs = true;
 		}
 	}
-- 
2.41.0

     5f2a0afa9890 ("smb: client: improve DFS mount check").

for v6.3.y.

And for v6.4.y, please take these

    d439b29057e2 ("smb: client: fix broken file attrs with nodfs mounts")
    49024ec8795e ("smb: client: fix parsing of source mount option")
    3ae872de4107 ("smb: client: fix shared DFS root mounts with different prefixes")
    49024ec8795e ("smb: client: fix parsing of source mount option")

Thanks.

[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux