Exemplo n.º 1
0
static int
cd9660_cmount(struct mntarg *ma, void *data, int flags, struct thread *td)
{
	struct iso_args args;
	int error;

	error = copyin(data, &args, sizeof args);
	if (error)
		return (error);

	ma = mount_argsu(ma, "from", args.fspec, MAXPATHLEN);
	ma = mount_arg(ma, "export", &args.export, sizeof args.export);
	ma = mount_argsu(ma, "cs_disk", args.cs_disk, 64);
	ma = mount_argsu(ma, "cs_local", args.cs_local, 64);
	ma = mount_argf(ma, "ssector", "%u", args.ssector);
	ma = mount_argb(ma, !(args.flags & ISOFSMNT_NORRIP), "norrip");
	ma = mount_argb(ma, args.flags & ISOFSMNT_GENS, "nogens");
	ma = mount_argb(ma, args.flags & ISOFSMNT_EXTATT, "noextatt");
	ma = mount_argb(ma, !(args.flags & ISOFSMNT_NOJOLIET), "nojoliet");
	ma = mount_argb(ma,
	    args.flags & ISOFSMNT_BROKENJOLIET, "nobrokenjoliet");
	ma = mount_argb(ma, args.flags & ISOFSMNT_KICONV, "nokiconv");

	error = kernel_mount(ma, flags);

	return (error);
}
Exemplo n.º 2
0
static int
msdosfs_cmount(struct mntarg *ma, void *data, uint64_t flags)
{
	struct msdosfs_args args;
	struct export_args exp;
	int error;

	if (data == NULL)
		return (EINVAL);
	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", &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);
	ma = mount_argf(ma, "dirmask", "%d", args.dirmask);

	ma = mount_argb(ma, args.flags & MSDOSFSMNT_SHORTNAME, "noshortname");
	ma = mount_argb(ma, args.flags & MSDOSFSMNT_LONGNAME, "nolongname");
	ma = mount_argb(ma, !(args.flags & MSDOSFSMNT_NOWIN95), "nowin95");
	ma = mount_argb(ma, args.flags & MSDOSFSMNT_KICONV, "nokiconv");

	ma = mount_argsu(ma, "cs_win", args.cs_win, MAXCSLEN);
	ma = mount_argsu(ma, "cs_dos", args.cs_dos, MAXCSLEN);
	ma = mount_argsu(ma, "cs_local", args.cs_local, MAXCSLEN);

	error = kernel_mount(ma, flags);

	return (error);
}
Exemplo n.º 3
0
static int
ntfs_cmount ( 
	struct mntarg *ma,
	void *data,
	uint64_t flags)
{
	struct ntfs_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", &exp, sizeof(exp));
	ma = mount_argf(ma, "uid", "%d", args.uid);
	ma = mount_argf(ma, "gid", "%d", args.gid);
	ma = mount_argf(ma, "mode", "%d", args.mode);
	ma = mount_argb(ma, args.flag & NTFS_MFLAG_CASEINS, "nocaseins");
	ma = mount_argb(ma, args.flag & NTFS_MFLAG_ALLNAMES, "noallnames");
	if (args.flag & NTFS_MFLAG_KICONV) {
		ma = mount_argsu(ma, "cs_ntfs", args.cs_ntfs, 64);
		ma = mount_argsu(ma, "cs_local", args.cs_local, 64);
	}

	error = kernel_mount(ma, flags);

	return (error);
}
Exemplo n.º 4
0
static int
portal_cmount(struct mntarg *ma, void *data, uint64_t flags)
{
	struct portal_args args;
	int error;

	if (data == NULL)
		return (EINVAL);
	error = copyin(data, &args, sizeof args);
	if (error)
		return (error);

	ma = mount_argf(ma, "socket", "%d", args.pa_socket);
	ma = mount_argsu(ma, "config", args.pa_config, MAXPATHLEN);
	error = kernel_mount(ma, flags);

	return (error);
}
Exemplo n.º 5
0
static int
reiserfs_cmount(struct mntarg *ma, void *data, uint64_t 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", &exp, sizeof(exp));

	error = kernel_mount(ma, flags);

	return (error);
}