tfm = crypto_alloc_tfm("md5", 0); 
tfm = crypto_alloc_tfm("md5", CRYPTO_TFM_REQ_MAY_SLEEP); 
nfs4_make_rec_clidname(char *dname, struct xdr_netobj *clname){	struct xdr_netobj cksum;	struct crypto_tfm *tfm;	struct scatterlist sg[1];	int status = nfserr_resource;	dprintk("NFSD: nfs4_make_rec_clidname for %.*s\n",			clname->len, clname->data);	tfm = crypto_alloc_tfm("md5", 0);	if (tfm == NULL)		goto out;	cksum.len = crypto_tfm_alg_digestsize(tfm);	cksum.data = kmalloc(cksum.len, GFP_KERNEL);	if (cksum.data == NULL) 		goto out;	crypto_digest_init(tfm);	sg[0].page = virt_to_page(clname->data);	sg[0].offset = offset_in_page(clname->data);	sg[0].length = clname->len;	crypto_digest_update(tfm, sg, 1);	crypto_digest_final(tfm, cksum.data);	md5_to_hex(dname, cksum.data);	kfree(cksum.data);	status = nfs_ok;out:	if (tfm)		crypto_free_tfm(tfm);	return status;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/eb6f1160ddb2fdadf50f350da79d0796c37f17e2/nfs4recover.c/buggy/fs/nfsd/nfs4recover.c