diff options
author | kib <kib@FreeBSD.org> | 2010-10-10 07:05:47 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2010-10-10 07:05:47 +0000 |
commit | 4036cd070dc5c10e56ee81b7b59fac9c3d1b21b5 (patch) | |
tree | a006cef67a086a26fbf62390901a1727666e6379 /sys/gnu | |
parent | ab9dd3ef5837b16243ea56cca50dce6f2709cb92 (diff) | |
download | FreeBSD-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/gnu')
-rw-r--r-- | sys/gnu/fs/reiserfs/reiserfs_mount.h | 2 | ||||
-rw-r--r-- | sys/gnu/fs/reiserfs/reiserfs_vfsops.c | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/gnu/fs/reiserfs/reiserfs_mount.h b/sys/gnu/fs/reiserfs/reiserfs_mount.h index f47c976..fbb0b50 100644 --- a/sys/gnu/fs/reiserfs/reiserfs_mount.h +++ b/sys/gnu/fs/reiserfs/reiserfs_mount.h @@ -39,7 +39,7 @@ struct reiserfs_mount { /* Arguments to mount ReiserFS filesystems. */ struct reiserfs_args { char *fspec; /* blocks special holding the fs to mount */ - struct export_args export; /* network export information */ + struct oexport_args export; /* network export information */ }; #endif /* !defined _GNU_REISERFS_REISERFS_MOUNT_H */ diff --git a/sys/gnu/fs/reiserfs/reiserfs_vfsops.c b/sys/gnu/fs/reiserfs/reiserfs_vfsops.c index 6b4272e..1b5ce88 100644 --- a/sys/gnu/fs/reiserfs/reiserfs_vfsops.c +++ b/sys/gnu/fs/reiserfs/reiserfs_vfsops.c @@ -52,14 +52,16 @@ static int reiserfs_cmount(struct mntarg *ma, void *data, int flags) { struct reiserfs_args args; + struct export_args exp; int error; 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)); error = kernel_mount(ma, flags); |