With smbfs, if you make smbmnt and smbumount setuid root, a normal user can mount and unmount shares. With the cifs filesystem, it is possible to mount by making mount.cifs setuid root, but since there is no "umount.cifs" or "cifsumount" utility, normal users cannot unmount. I've found some source for a "cifsumount" utility at http://lists.samba.org/archive/linux-cifs-client/2003-December.txt, but it's not included in the Samba distribution, as far as I can tell.
cifs version 1.29 (will be in 2.6.12, currently in mm tree) as I mentioned is somewhat better in handling the flag but work the real fix to cifs_readpages is queued up after some other key changes (would evaluate proposed patches though)
The previous comment got appended to the wrong defect.
umount.cifs is now in the Samba 3 development tree ("gcc umount.cifs.c -o umount.cifs" and put umount.cifs in /sbin for most distributions, and make it setuid). There is a coreq change to add the corresponding ioctl (the uid check is done in kernel by the way, not in userspace, to avoid user vs. kernel size issues - ie 16 vs. 32 bit vs. larger uid conflicts). The coreq change should be in the final 1.32 version of cifs.ko module (but certainly by version 1.33).
Thanks for your efforts!
The key kernel piece was added for changeset 1.2251 (http://cifs.bkbits.net:8080/linux- 2.5cifs/gnupatch@425fff9bivgutbUCbnok8UQAiz8JwQ) and minor cleanup was done in 1.2252. Let me know if you see changes needed. The user space tool (umount.cifs), currenty does not update mtab (although it does unmount the filesystem as can be seen from /proc/mounts) but will fixed by version 0.4 of the tool. Apparently putting the tool in /sbin and specifying -i on umount should invoke it (based on what I see in the umount code) but umount.cifs can be called directly if made setuid