void *new, *zap;
struct user_key_payload *upayload, *zap;
static int user_update(struct key *key, const void *data, size_t datalen){	void *new, *zap;	int ret;	ret = -EINVAL;	if (datalen <= 0 || datalen > 32767 || !data)		goto error;	/* copy the data */	ret = -ENOMEM;	new = kmalloc(datalen, GFP_KERNEL);	if (!new)		goto error;	memcpy(new, data, datalen);	/* check the quota and attach the new data */	zap = new;	write_lock(&key->lock);	ret = key_payload_reserve(key, datalen);	if (ret == 0) {		/* attach the new data, displacing the old */		zap = key->payload.data;		key->payload.data = new;		key->expiry = 0;	}	write_unlock(&key->lock);	kfree(zap); error:	return ret;} /* end user_update() */