Comment 3 for bug 1854887

Revision history for this message
Matthew Ruffell (mruffell) wrote :

Verification for disco. I went and installed 5.0.0-40-generic from -proposed
to a disco box:

$ uname -rv
5.0.0-40-generic #44-Ubuntu SMP Wed Jan 15 02:03:45 UTC 2020

I do not have access to a multi tier cifs mount, so I will try and connect to a known one with a bad username / password to ensure that the server forwarding and caching works as expected, since that occurs before authentication.

I enabled tracing with:

# modprobe cifs
# echo 'module cifs +p' > /sys/kernel/debug/dynamic_debug/control
# echo 'file fs/cifs/* +p' > /sys/kernel/debug/dynamic_debug/control
# echo 7 > /proc/fs/cifs/cifsFYI

To mount a cifs share, you need cifs-utils:

$ sudo apt install cifs-utils

From there I accessed the multi tier cifs server:

$ sudo mount -v -t cifs //<domain>/<toplevel>/<country>/<sharename> -o defaults,user=aaa /mnt/share

Checking dmesg we get:

Status code returned 0xc0000257 STATUS_PATH_NOT_COVERED
fs/cifs/smb2maperror.c: Mapping SMB2 status code 0xc0000257 to POSIX err -66
fs/cifs/connect.c: build_unc_path_to_root: full_path=\\<Regional DFS Server>\Root\Country\<Share>
fs/cifs/connect.c: build_unc_path_to_root: full_path=\\<Regional DFS Server>\Root\Country\<Share>
fs/cifs/dfs_cache.c: do_dfs_cache_find: search path: \<Regional DFS Server>\Root\Country\<Share>
fs/cifs/dfs_cache.c: do_dfs_cache_find: cache miss
fs/cifs/dfs_cache.c: do_dfs_cache_find: DFS referral request for \<Actual DFS Server>\Root\Country\<Share>
fs/cifs/smb2ops.c: smb2_get_dfs_refer path <\<Actual DFS Server>\Root\Country\<Share>>
fs/cifs/misc.c: num_referrals: 1 dfs flags: 0x2 ...
fs/cifs/dns_resolve.c: dns_resolve_server_name_to_ip: resolved: <Actual File Server> to <IPV4 Address>
fs/cifs/connect.c: Username: aaa

This is in line with what is expected, since it resolves the next tier file server instead of failing and going back up the tree.

I had also previously supplied the customer with a test build based on the previous bionic hwe kernel, 5.0.0-37-generic #40~18.04.1, with the commit applied, and all was tested and working.

With my verification of disco kernel from -proposed the customer's prior test kernel, I am happy to mark this as verified.

Next, I just need this patch to land in eoan, and then into a bionic HWE kernel to get this fixed for the customer.