summaryrefslogtreecommitdiffstats
path: root/sys/fs/msdosfs
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2010-10-10 07:05:47 +0000
committerkib <kib@FreeBSD.org>2010-10-10 07:05:47 +0000
commit4036cd070dc5c10e56ee81b7b59fac9c3d1b21b5 (patch)
treea006cef67a086a26fbf62390901a1727666e6379 /sys/fs/msdosfs
parentab9dd3ef5837b16243ea56cca50dce6f2709cb92 (diff)
downloadFreeBSD-src-4036cd070dc5c10e56ee81b7b59fac9c3d1b21b5.zip
FreeBSD-src-4036cd070dc5c10e56ee81b7b59fac9c3d1b21b5.tar.gz
The r184588 changed the layout of struct export_args, causing an ABI
breakage for old mount(2) syscall, since most struct <filesystem>_args embed export_args. The mount(2) is supposed to provide ABI compatibility for pre-nmount mount(8) binaries, so restore ABI to pre-r184588. Requested and reviewed by: bde MFC after: 2 weeks
Diffstat (limited to 'sys/fs/msdosfs')
-rw-r--r--sys/fs/msdosfs/msdosfs_vfsops.c4
-rw-r--r--sys/fs/msdosfs/msdosfsmount.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c
index a0801bd..e04ef9c 100644
--- a/sys/fs/msdosfs/msdosfs_vfsops.c
+++ b/sys/fs/msdosfs/msdosfs_vfsops.c
@@ -200,6 +200,7 @@ static int
msdosfs_cmount(struct mntarg *ma, void *data, int flags)
{
struct msdosfs_args args;
+ struct export_args exp;
int error;
if (data == NULL)
@@ -207,9 +208,10 @@ msdosfs_cmount(struct mntarg *ma, void *data, int flags)
error = copyin(data, &args, sizeof args);
if (error)
return (error);
+ vfs_oexport_conv(&args.export, &exp);
ma = mount_argsu(ma, "from", args.fspec, MAXPATHLEN);
- ma = mount_arg(ma, "export", &args.export, sizeof args.export);
+ ma = mount_arg(ma, "export", &exp, sizeof(exp));
ma = mount_argf(ma, "uid", "%d", args.uid);
ma = mount_argf(ma, "gid", "%d", args.gid);
ma = mount_argf(ma, "mask", "%d", args.mask);
diff --git a/sys/fs/msdosfs/msdosfsmount.h b/sys/fs/msdosfs/msdosfsmount.h
index 2951b2c..417923f 100644
--- a/sys/fs/msdosfs/msdosfsmount.h
+++ b/sys/fs/msdosfs/msdosfsmount.h
@@ -234,7 +234,7 @@ uint32_t msdosfs_fileno_map(struct mount *, uint64_t);
*/
struct msdosfs_args {
char *fspec; /* blocks special holding the fs to mount */
- struct export_args export; /* network export information */
+ struct oexport_args export; /* network export information */
uid_t uid; /* uid that owns msdosfs files */
gid_t gid; /* gid that owns msdosfs files */
mode_t mask; /* file mask to be applied for msdosfs perms */
OpenPOWER on IntegriCloud