struct v9fs_fid *fid = v9fs_fid_lookup(dentry, FID_OP); 
struct v9fs_fid *fid = v9fs_fid_lookup(dentry); 
static int v9fs_readlink(struct dentry *dentry, char *buffer, int buflen){	int retval = -EPERM;	struct v9fs_fcall *fcall = NULL;	struct v9fs_session_info *v9ses = v9fs_inode2v9ses(dentry->d_inode);	struct v9fs_fid *fid = v9fs_fid_lookup(dentry, FID_OP);	if (!fid) {		dprintk(DEBUG_ERROR, "could not resolve fid from dentry\n");		retval = -EBADF;		goto FreeFcall;	}	if (!v9ses->extended) {		retval = -EBADF;		dprintk(DEBUG_ERROR, "not extended\n");		goto FreeFcall;	}	dprintk(DEBUG_VFS, " %s\n", dentry->d_name.name);	retval = v9fs_t_stat(v9ses, fid->fid, &fcall);	if (retval < 0) {		dprintk(DEBUG_ERROR, "stat error\n");		goto FreeFcall;	}	if (!fcall)		return -EIO;	if (!(fcall->params.rstat.stat->mode & V9FS_DMSYMLINK)) {		retval = -EINVAL;		goto FreeFcall;	}	/* copy extension buffer into buffer */	if (strlen(fcall->params.rstat.stat->extension) < buflen)		buflen = strlen(fcall->params.rstat.stat->extension);	memcpy(buffer, fcall->params.rstat.stat->extension, buflen + 1);	retval = buflen;      FreeFcall:	kfree(fcall);	return retval;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/0b8dd17762194ec77066d339e0b2866b0c66b715/vfs_inode.c/buggy/fs/9p/vfs_inode.c