warn(rdev);
warn("%s", rdev);
config(dev, file, action, key)	char *dev;	char *file;	int action;	char *key;{	struct vnd_ioctl vndio;	FILE *f;	char *rdev;	int rv;	if (opendev(dev, O_RDWR, OPENDEV_PART, &rdev) < 0)		err(4, "%s", rdev);	f = fopen(rdev, "rw");	if (f == NULL) {		warn(rdev);		rv = -1;		goto out;	}	vndio.vnd_file = file;	vndio.vnd_key = key;	vndio.vnd_keylen = key == NULL ? 0 : strlen(key);	/*	 * Clear (un-configure) the device	 */	if (action == VND_UNCONFIG) {		rv = ioctl(fileno(f), VNDIOCCLR, &vndio);		if (rv)			warn("VNDIOCCLR");		else if (verbose)			printf("%s: cleared\n", dev);	}	/*	 * Configure the device	 */	if (action == VND_CONFIG) {		rv = ioctl(fileno(f), VNDIOCSET, &vndio);		if (rv)			warn("VNDIOCSET");		else if (verbose)			printf("%s: %d bytes on %s\n", dev, vndio.vnd_size,			    file);	}	fclose(f);	fflush(stdout); out:	if (key)		memset(key, 0, strlen(key));	return (rv < 0);}