Re: [PATCH] cifs: handle termination of cifs oplockd kernel thread

From: Steve French
Date: Fri Apr 29 2005 - 16:21:04 EST


> does and who revied that? Things like that don't have a business in the
> kernel, and certainly not as ioctl.

Other filesystems such as smbfs had an ioctl that returned the uid of the mounter which they used (in the smbfs case in smbumount). This was required by the unmount helper to determine if the unmount would allow a user to unmount a particular mount that they mounted. Unlike in the case of mount, for unmount you can not use the owner uid of the mount target to tell who mounted that mount. I had not received any better suggestions as to how to address it. I had proposed various alternatives - exporting in in /proc/mounts e.g.

As we try to gradually obsolete smbfs, this came up with various users (there was even a bugzilla bug opened for adding it) who said that they need the ability to unmount their own mounts for network filesystems without using /etc/fstab. Unfortunately for network filesytsems, unlike local filesystems, it is impractical to put every possible mount target in /etc/fstab since servers get renamed and the universe of possible cifs mount targets for a user is large.

There seemed only three alternatives -
1) mimic the smbfs ioctl - as can be seen from smbfs and smbumount source this has portability problems because apparently there is no guarantee that uid_t is the same size in kernel and in userspace - smbfs actually has two ioctls for different sizes of uid field - this seemed like a bad idea
2) export the uid in /proc/mounts - same problem as above
3) call into the kernel to see if current matches the uid of the mounter - this has no 16/32/64 bit uid portability issues since the check is made in kernel

If there is a better way to achieve these goals I would like to know - I had not gotten any feedback on a better way. Although I am not a fan of ioctls, this is as simple as they get and I checked for overlaps in the ioctl numbers and the utility checks to make sure it is only invoked if the filesystem magic number matches CIFS's magic number and no parms are passed or returned so it is quite safe.

Of course I would have preferred that this facility were built into the kernel via a syscall so the same approach could be put in umount itself instead of in a umount helper.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/