if (*prefix) {		/* Free any previous prefix */ kfree(*prefix); *prefix = NULL; } 
/* Free any previous prefix */ kfree(*prefix); *prefix = NULL; 
parse_options(char *options, uid_t *uid, gid_t *gid, int *mode, int *reserved, s32 *root,		int *blocksize, char **prefix, char *volume, unsigned long *mount_opts){	char *p;	substring_t args[MAX_OPT_ARGS];	/* Fill in defaults */	*uid        = current->uid;	*gid        = current->gid;	*reserved   = 2;	*root       = -1;	*blocksize  = -1;	volume[0]   = ':';	volume[1]   = 0;	*mount_opts = 0;	if (!options)		return 1;	while ((p = strsep(&options, ",")) != NULL) {		int token, n, option;		if (!*p)			continue;		token = match_token(p, tokens, args);		switch (token) {		case Opt_bs:			if (match_int(&args[0], &n))				return -EINVAL;			if (n != 512 && n != 1024 && n != 2048			    && n != 4096) {				printk ("AFFS: Invalid blocksize (512, 1024, 2048, 4096 allowed)\n");				return 0;			}			*blocksize = n;			break;		case Opt_mode:			if (match_octal(&args[0], &option))				return 1;			*mode = option & 0777;			*mount_opts |= SF_SETMODE;			break;		case Opt_mufs:			*mount_opts |= SF_MUFS;			break;		case Opt_prefix:			if (*prefix) {		/* Free any previous prefix */				kfree(*prefix);				*prefix = NULL;			}			*prefix = match_strdup(&args[0]);			if (!*prefix)				return 0;			*mount_opts |= SF_PREFIX;			break;		case Opt_protect:			*mount_opts |= SF_IMMUTABLE;			break;		case Opt_reserved:			if (match_int(&args[0], reserved))				return 1;			break;		case Opt_root:			if (match_int(&args[0], root))				return 1;			break;		case Opt_setgid:			if (match_int(&args[0], &option))				return 1;			*gid = option;			*mount_opts |= SF_SETGID;			break;		case Opt_setuid:			if (match_int(&args[0], &option))				return -EINVAL;			*uid = option;			*mount_opts |= SF_SETUID;			break;		case Opt_verbose:			*mount_opts |= SF_VERBOSE;			break;		case Opt_volume: {			char *vol = match_strdup(&args[0]);			strlcpy(volume, vol, 32);			kfree(vol);			break;		}		case Opt_ignore:		 	/* Silently ignore the quota options */			break;		default:			printk("AFFS: Unrecognized mount option \"%s\" "					"or missing value\n", p);			return 0;		}	}	return 1;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/f99d49adf527fa6f7a9c42257fa76bca6b8df1e3/super.c/buggy/fs/affs/super.c