]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Restore the ability to mount procfs and fdescfs filesystems via the
authorKelly Yancey <kbyanc@FreeBSD.org>
Mon, 15 May 2006 19:42:10 +0000 (19:42 +0000)
committerKelly Yancey <kbyanc@FreeBSD.org>
Mon, 15 May 2006 19:42:10 +0000 (19:42 +0000)
commitc9ad8a67af1698112b3fd4b4e69926cce376dfd9
tree80c225232434e035c1f6776fd3e60587ac7e5f86
parent273733f2c82ddff3ac837a18e9ed4b7af21bc157
Restore the ability to mount procfs and fdescfs filesystems via the
mount(2) system call:

  * Add cmount hook to fdescfs and pseudofs (and, by extension, procfs and
    linprocfs).  This (mostly) restores the ability to mount these
    filesystems using the old mount(2) system call (see below for the
    rest of the fix).

  * Remove not-NULL check for the data argument from the mount(2) entry
    point.  Per the mount(2) man page, it is up to the individual
    filesystem being mounted to verify data.  Or, in the case of procfs,
    etc. the filesystem is free to ignore the data parameter if it does
    not use it.  Enforcing data to be not-NULL in the mount(2) system call
    entry point prevented passing NULL to filesystems which ignored the
    data pointer value.  Apparently, passing NULL was common practice
    in such cases, as even our own mount_std(8) used to do it in the
    pre-nmount(2) world.

All userland programs in the tree were converted to nmount(2) long ago,
but I've found at least one external program which broke due to this
(presumably unintentional) mount(2) API change.  One could argue that
external programs should also be converted to nmount(2), but then there
isn't much point in keeping the mount(2) interface for backward
compatibility if it isn't backward compatible.
sys/fs/fdescfs/fdesc_vfsops.c
sys/fs/pseudofs/pseudofs.c
sys/fs/pseudofs/pseudofs.h
sys/kern/vfs_mount.c