if (hsb->nls_disk && !hsb->nls_io) { hsb->nls_io = load_nls_default(); if (!hsb->nls_io) { printk("HFS: unable to load default iocharset\n"); return 0; } } 
static int parse_options(char *options, struct hfs_sb_info *hsb){	char *p;	substring_t args[MAX_OPT_ARGS];	int tmp, token;	/* initialize the sb with defaults */	hsb->s_uid = current->uid;	hsb->s_gid = current->gid;	hsb->s_file_umask = 0133;	hsb->s_dir_umask = 0022;	hsb->s_type = hsb->s_creator = cpu_to_be32(0x3f3f3f3f);	/* == '????' */	hsb->s_quiet = 0;	hsb->part = -1;	hsb->session = -1;	if (!options)		return 1;	while ((p = strsep(&options, ",")) != NULL) {		if (!*p)			continue;		token = match_token(p, tokens, args);		switch (token) {		case opt_uid:			if (match_int(&args[0], &tmp)) {				printk("HFS: uid requires an argument\n");				return 0;			}			hsb->s_uid = (uid_t)tmp;			break;		case opt_gid:			if (match_int(&args[0], &tmp)) {				printk("HFS: gid requires an argument\n");				return 0;			}			hsb->s_gid = (gid_t)tmp;			break;		case opt_umask:			if (match_octal(&args[0], &tmp)) {				printk("HFS: umask requires a value\n");				return 0;			}			hsb->s_file_umask = (umode_t)tmp;			hsb->s_dir_umask = (umode_t)tmp;			break;		case opt_file_umask:			if (match_octal(&args[0], &tmp)) {				printk("HFS: file_umask requires a value\n");				return 0;			}			hsb->s_file_umask = (umode_t)tmp;			break;		case opt_dir_umask:			if (match_octal(&args[0], &tmp)) {				printk("HFS: dir_umask requires a value\n");				return 0;			}			hsb->s_dir_umask = (umode_t)tmp;			break;		case opt_part:			if (match_int(&args[0], &hsb->part)) {				printk("HFS: part requires an argument\n");				return 0;			}			break;		case opt_session:			if (match_int(&args[0], &hsb->session)) {				printk("HFS: session requires an argument\n");				return 0;			}			break;		case opt_type:			if (match_fourchar(&args[0], &hsb->s_type)) {				printk("HFS+-fs: type requires a 4 character value\n");				return 0;			}			break;		case opt_creator:			if (match_fourchar(&args[0], &hsb->s_creator)) {				printk("HFS+-fs: creator requires a 4 character value\n");				return 0;			}			break;		case opt_quiet:			hsb->s_quiet = 1;			break;		default:			return 0;		}	}	hsb->s_dir_umask &= 0777;	hsb->s_file_umask &= 0577;	return 1;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/328b9227865026268261a24a97a578907b280415/super.c/buggy/fs/hfs/super.c