case OPT_KERNEL_CACHE: d->flags |= FUSE_KERNEL_CACHE; break;  case OPT_DIRECT_IO: d->flags |= FUSE_DIRECT_IO; break;
static int parse_fuse_opt(char *opt, struct fuse_mount_data *d){	char *p;	memset(d, 0, sizeof(struct fuse_mount_data));	d->max_read = ~0;	while ((p = strsep(&opt, ",")) != NULL) {		int token;		int value;		substring_t args[MAX_OPT_ARGS];		if (!*p)			continue;		token = match_token(p, tokens, args);		switch (token) {		case OPT_FD:			if (match_int(&args[0], &value))				return 0;			d->fd = value;			d->fd_present = 1;			break;		case OPT_ROOTMODE:			if (match_octal(&args[0], &value))				return 0;			d->rootmode = value;			d->rootmode_present = 1;			break;		case OPT_USER_ID:			if (match_int(&args[0], &value))				return 0;			d->user_id = value;			d->user_id_present = 1;			break;		case OPT_GROUP_ID:			if (match_int(&args[0], &value))				return 0;			d->group_id = value;			d->group_id_present = 1;			break;		case OPT_DEFAULT_PERMISSIONS:			d->flags |= FUSE_DEFAULT_PERMISSIONS;			break;		case OPT_ALLOW_OTHER:			d->flags |= FUSE_ALLOW_OTHER;			break;		case OPT_KERNEL_CACHE:			d->flags |= FUSE_KERNEL_CACHE;			break;		case OPT_DIRECT_IO:			d->flags |= FUSE_DIRECT_IO;			break;		case OPT_MAX_READ:			if (match_int(&args[0], &value))				return 0;			d->max_read = value;			break;		default:			return 0;		}	}	if (!d->fd_present || !d->rootmode_present ||	    !d->user_id_present || !d->group_id_present)		return 0;	return 1;}