 retry_parent: clnt->__cl_parent_dentry = rpc_mkdir(NULL, dir_name, NULL); if (IS_ERR(clnt->__cl_parent_dentry)) { error = PTR_ERR(clnt->__cl_parent_dentry); if (error == -EEXIST) goto retry_parent; /* XXX(hch): WTF? */  printk(KERN_INFO "RPC: Couldn't create pipefs entry %s, error %d\n", dir_name, error); return error; 
for (;;) { snprintf(clnt->cl_pathname, sizeof(clnt->cl_pathname), "%s/clnt%x", dir_name, (unsigned int)clntid++); clnt->cl_pathname[sizeof(clnt->cl_pathname) - 1] = '\0'; clnt->cl_dentry = rpc_mkdir(clnt->cl_pathname, clnt); if (!IS_ERR(clnt->cl_dentry)) return 0; error = PTR_ERR(clnt->cl_dentry); if (error != -EEXIST) { printk(KERN_INFO "RPC: Couldn't create pipefs entry %s, error %d\n", clnt->cl_pathname, error); return error; } 
rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name){	static unsigned int clntid;	char name[128];	int error;	if (dir_name == NULL)		return 0; retry_parent:	clnt->__cl_parent_dentry = rpc_mkdir(NULL, dir_name, NULL);	if (IS_ERR(clnt->__cl_parent_dentry)) {		error = PTR_ERR(clnt->__cl_parent_dentry);		if (error == -EEXIST)			goto retry_parent; /* XXX(hch): WTF? */			printk(KERN_INFO "RPC: Couldn't create pipefs entry %s, error %d\n",				dir_name, error);		return error;	} retry_child:	snprintf(name, sizeof(name), "clnt%x", clntid++);	name[sizeof(name) - 1] = '\0';	clnt->cl_dentry = rpc_mkdir(clnt->__cl_parent_dentry, name, clnt);	if (IS_ERR(clnt->cl_dentry)) {		error = PTR_ERR(clnt->cl_dentry);		if (error == -EEXIST)			goto retry_child;		printk(KERN_INFO "RPC: Couldn't create pipefs entry %s, error %d\n",				name, error);		rpc_rmdir(clnt->__cl_parent_dentry);		return error;	}	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/f134585a7343d71f9be7f0cf97e2145f21dd10c6/clnt.c/buggy/net/sunrpc/clnt.c