server->client = server->client_sys = ERR_PTR(-EINVAL); 
server->client = server->client_sys = server->client_acl = ERR_PTR(-EINVAL); 
static struct super_block *nfs_get_sb(struct file_system_type *fs_type,	int flags, const char *dev_name, void *raw_data){	int error;	struct nfs_server *server = NULL;	struct super_block *s;	struct nfs_fh *root;	struct nfs_mount_data *data = raw_data;	s = ERR_PTR(-EINVAL);	if (data == NULL) {		dprintk("%s: missing data argument\n", __FUNCTION__);		goto out_err;	}	if (data->version <= 0 || data->version > NFS_MOUNT_VERSION) {		dprintk("%s: bad mount version\n", __FUNCTION__);		goto out_err;	}	switch (data->version) {		case 1:			data->namlen = 0;		case 2:			data->bsize  = 0;		case 3:			if (data->flags & NFS_MOUNT_VER3) {				dprintk("%s: mount structure version %d does not support NFSv3\n",						__FUNCTION__,						data->version);				goto out_err;			}			data->root.size = NFS2_FHSIZE;			memcpy(data->root.data, data->old_root.data, NFS2_FHSIZE);		case 4:			if (data->flags & NFS_MOUNT_SECFLAVOUR) {				dprintk("%s: mount structure version %d does not support strong security\n",						__FUNCTION__,						data->version);				goto out_err;			}		case 5:			memset(data->context, 0, sizeof(data->context));	}#ifndef CONFIG_NFS_V3	/* If NFSv3 is not compiled in, return -EPROTONOSUPPORT */	s = ERR_PTR(-EPROTONOSUPPORT);	if (data->flags & NFS_MOUNT_VER3) {		dprintk("%s: NFSv3 not compiled into kernel\n", __FUNCTION__);		goto out_err;	}#endif /* CONFIG_NFS_V3 */	s = ERR_PTR(-ENOMEM);	server = kmalloc(sizeof(struct nfs_server), GFP_KERNEL);	if (!server)		goto out_err;	memset(server, 0, sizeof(struct nfs_server));	/* Zero out the NFS state stuff */	init_nfsv4_state(server);	server->client = server->client_sys = ERR_PTR(-EINVAL);	root = &server->fh;	if (data->flags & NFS_MOUNT_VER3)		root->size = data->root.size;	else		root->size = NFS2_FHSIZE;	s = ERR_PTR(-EINVAL);	if (root->size > sizeof(root->data)) {		dprintk("%s: invalid root filehandle\n", __FUNCTION__);		goto out_err;	}	memcpy(root->data, data->root.data, root->size);	/* We now require that the mount process passes the remote address */	memcpy(&server->addr, &data->addr, sizeof(server->addr));	if (server->addr.sin_addr.s_addr == INADDR_ANY) {		dprintk("%s: mount program didn't pass remote address!\n",				__FUNCTION__);		goto out_err;	}	/* Fire up rpciod if not yet running */	s = ERR_PTR(rpciod_up());	if (IS_ERR(s)) {		dprintk("%s: couldn't start rpciod! Error = %ld\n",				__FUNCTION__, PTR_ERR(s));		goto out_err;	}	s = sget(fs_type, nfs_compare_super, nfs_set_super, server);	if (IS_ERR(s) || s->s_root)		goto out_rpciod_down;	s->s_flags = flags;	error = nfs_fill_super(s, data, flags & MS_VERBOSE ? 1 : 0);	if (error) {		up_write(&s->s_umount);		deactivate_super(s);		return ERR_PTR(error);	}	s->s_flags |= MS_ACTIVE;	return s;out_rpciod_down:	rpciod_down();out_err:	kfree(server);	return s;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b7fa0554cf1ba6d6895cd0a5b02989a26e0bc704/inode.c/buggy/fs/nfs/inode.c