]> xenbits.xensource.com Git - freebsd.git/commitdiff
sys/mount.h: Comment on distinction between vfs_{c,}mount
authorcem <cem@FreeBSD.org>
Thu, 5 Sep 2019 00:56:37 +0000 (00:56 +0000)
committercem <cem@FreeBSD.org>
Thu, 5 Sep 2019 00:56:37 +0000 (00:56 +0000)
Hope to save someone else a little future effort in ugly duplicated code.

No functional change.

sys/sys/mount.h

index 50f0663537c5744a60de01f36117c4b0af24ac6e..77ccc438f9ef22faa8cc28c7555fdd3e7a933202 100644 (file)
@@ -651,6 +651,18 @@ struct nameidata;
 struct sysctl_req;
 struct mntarg;
 
+/*
+ * N.B., vfs_cmount is the ancient vfsop invoked by the old mount(2) syscall.
+ * The new way is vfs_mount.
+ *
+ * vfs_cmount implementations typically translate arguments from their
+ * respective old per-FS structures into the key-value list supported by
+ * nmount(2), then use kernel_mount(9) to mimic nmount(2) from kernelspace.
+ *
+ * Filesystems with mounters that use nmount(2) do not need to and should not
+ * implement vfs_cmount.  Hopefully a future cleanup can remove vfs_cmount and
+ * mount(2) entirely.
+ */
 typedef int vfs_cmount_t(struct mntarg *ma, void *data, uint64_t flags);
 typedef int vfs_unmount_t(struct mount *mp, int mntflags);
 typedef int vfs_root_t(struct mount *mp, int flags, struct vnode **vpp);