Ejemplo n.º 1
0
int
mount_ext2fs(int argc, char *argv[])
{
	struct ufs_args args;		/* XXX ffs_args */
	char fs_name[MAXPATHLEN], canon_dev[MAXPATHLEN];
	const char *errcause;
	int mntflags;

	mount_ext2fs_parseargs(argc, argv, &args, &mntflags,
	    canon_dev, fs_name);

	if (mount(MOUNT_EXT2FS, fs_name, mntflags, &args, sizeof args) == -1) {
		switch (errno) {
		case EMFILE:
			errcause = "mount table full";
			break;
		case EINVAL:
			if (mntflags & MNT_UPDATE)
				errcause =
			    "specified device does not match mounted device";
			else 
				errcause = "incorrect super block";
			break;
		default:
			errcause = strerror(errno);
			break;
		}
		errx(1, "%s on %s: %s", args.fspec, fs_name, errcause);
	}
	exit(0);
}
Ejemplo n.º 2
0
int
main(int argc, char *argv[])
{
	struct ufs_args args;
	char canon_dev[UKFS_DEVICE_MAXPATHLEN], canon_dir[MAXPATHLEN];
	struct ukfs_part *part;
	int mntflags;
	int rv;

	setprogname(argv[0]);
	puffs_unmountonsignal(SIGINT, true);
	puffs_unmountonsignal(SIGTERM, true);

	UKFS_DEVICE_ARGVPROBE(&part);
	mount_ext2fs_parseargs(argc, argv, &args, &mntflags,
	    canon_dev, canon_dir);
	rv = p2k_run_diskfs(MOUNT_EXT2FS, canon_dev, part, canon_dir, mntflags, 
		&args, sizeof(args), 0);
	ukfs_part_release(part);
	if (rv)
		err(1, "mount");

	return 0;
}