Hi all, I found a small bug and I believe this is the right place to post it to, please correct me if I'm wrong. This bug was found on Debian 10, but it might be relevant for other distros. The linux kernel shows the supported filesystems of the current system in /proc/filesystems, but after installing the debian package cifs-utils from the stable repository, the cifs and smb3 filesystems are still not registered there. If I try to mount a share by specifying "-t cifs" it works, and it is even added /proc/filesystems after that. But I would expect it to be there before it is being used, since it is supported and working. I'm just guessing that the bug is somehow related to how it is being installed? Versions, and how to reproduce: root@debian:~# uname -a Linux debian 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux root@debian:~# samba --version Version 4.9.5-Debian root@debian:~# cat /proc/filesystems nodev sysfs nodev rootfs nodev ramfs nodev bdev nodev proc nodev cpuset nodev cgroup nodev cgroup2 nodev tmpfs nodev devtmpfs nodev debugfs nodev tracefs nodev securityfs nodev sockfs nodev dax nodev bpf nodev pipefs nodev hugetlbfs nodev devpts nodev mqueue nodev pstore ext3 ext2 ext4 nodev autofs root@debian:~# mount -t cifs -o username=guest,password= //10.1.1.1/Share /root/smbshare root@debian:~# cat /proc/filesystems nodev sysfs nodev rootfs nodev ramfs nodev bdev nodev proc nodev cpuset nodev cgroup nodev cgroup2 nodev tmpfs nodev devtmpfs nodev debugfs nodev tracefs nodev securityfs nodev sockfs nodev dax nodev bpf nodev pipefs nodev hugetlbfs nodev devpts nodev mqueue nodev pstore ext3 ext2 ext4 nodev autofs nodev cifs nodev smb3 Thank you!
I don't believe this is a bug but if you see other filesystems behaving differently let me know. When you do "cat /proc/filesystems | grep fs" you will see file systems whose modules are loaded. For smb3 or cifs mounts this driver is "cifs.ko" - so if you do "modprobe cifs" and then "cat /proc/filesystems | grep cifs" you will see cifs is loaded. Similarly if you do "modprobe nfs" and then "cat /proc/filesystems | grep nfs" you will see that nfs is loaded. If you do rmmod cifs or rmmod nfs and retry you will see that the module no longer apears. But ... looking at this I do see a possible bug. For nfs they show "nfs" and "nfs4" to indicate support for older dialects and for cifs we should show support for "smb3" not just "cifs" so "modprobe cifs" should display both "smb3" and "cifs"
I was wrong - "modprobe cifs" (or modprobe smb3) does what we want - and loads both "cifs" and "smb3" # cat /proc/filesystems | grep smb3 nodev smb3
I was wrong - "modprobe cifs" (or modprobe smb3) does what we want - and loads both "cifs" and "smb3" # cat /proc/filesystems | grep smb3 nodev smb3 # cat /proc/filesystems | grep cifs nodev cifs So looks correct
Entries in /proc/filesystems don't show up until the module is loaded (loaded explicitly via modprobe, or implicitly via mount), in this case "modprobe cifs" or "modprobe smb3" (or mount -t cifs //server/share ... or mount -t smb3 //server/share ...) This behaves the same as other kernel file system modules