case opt_force: sbi->flags |= HFSPLUS_SB_FORCE; break; 
int hfsplus_parse_options(char *input, struct hfsplus_sb_info *sbi){	char *p;	substring_t args[MAX_OPT_ARGS];	int tmp, token;	if (!input)		goto done;	while ((p = strsep(&input, ",")) != NULL) {		if (!*p)			continue;		token = match_token(p, tokens, args);		switch (token) {		case opt_creator:			if (match_fourchar(&args[0], &sbi->creator)) {				printk("HFS+-fs: creator requires a 4 character value\n");				return 0;			}			break;		case opt_type:			if (match_fourchar(&args[0], &sbi->type)) {				printk("HFS+-fs: type requires a 4 character value\n");				return 0;			}			break;		case opt_umask:			if (match_octal(&args[0], &tmp)) {				printk("HFS+-fs: umask requires a value\n");				return 0;			}			sbi->umask = (umode_t)tmp;			break;		case opt_uid:			if (match_int(&args[0], &tmp)) {				printk("HFS+-fs: uid requires an argument\n");				return 0;			}			sbi->uid = (uid_t)tmp;			break;		case opt_gid:			if (match_int(&args[0], &tmp)) {				printk("HFS+-fs: gid requires an argument\n");				return 0;			}			sbi->gid = (gid_t)tmp;			break;		case opt_part:			if (match_int(&args[0], &sbi->part)) {				printk("HFS+-fs: part requires an argument\n");				return 0;			}			break;		case opt_session:			if (match_int(&args[0], &sbi->session)) {				printk("HFS+-fs: session requires an argument\n");				return 0;			}			break;		case opt_nls:			if (sbi->nls) {				printk("HFS+-fs: unable to change nls mapping\n");				return 0;			}			p = match_strdup(&args[0]);			sbi->nls = load_nls(p);			if (!sbi->nls) {				printk("HFS+-fs: unable to load nls mapping \"%s\"\n", p);				kfree(p);				return 0;			}			kfree(p);			break;		case opt_decompose:			sbi->flags &= ~HFSPLUS_SB_NODECOMPOSE;			break;		case opt_nodecompose:			sbi->flags |= HFSPLUS_SB_NODECOMPOSE;			break;		default:			return 0;		}	}done:	if (!sbi->nls) {		/* try utf8 first, as this is the old default behaviour */		sbi->nls = load_nls("utf8");		if (!sbi->nls)			sbi->nls = load_nls_default();		if (!sbi->nls)			return 0;	}	return 1;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b0b623c3b22d57d6941b200321779d56c4e79e6b/options.c/buggy/fs/hfsplus/options.c