struct fuse_req *req = ff->release_req; struct fuse_release_in *inarg = &req->misc.release_in;  inarg->fh = ff->fh; inarg->flags = file->f_flags & ~O_EXCL; req->in.h.opcode = isdir ? FUSE_RELEASEDIR : FUSE_RELEASE; req->in.h.nodeid = get_node_id(inode); req->inode = inode; req->in.numargs = 1; req->in.args[0].size = sizeof(struct fuse_release_in); req->in.args[0].value = inarg; request_send_background(fc, req); kfree(ff); 
if (ff) { struct fuse_conn *fc = get_fuse_conn(inode); u64 nodeid = get_node_id(inode); fuse_send_release(fc, ff, nodeid, inode, file->f_flags, isdir); } 
int fuse_release_common(struct inode *inode, struct file *file, int isdir){	struct fuse_conn *fc = get_fuse_conn(inode);	struct fuse_file *ff = file->private_data;	struct fuse_req *req = ff->release_req;	struct fuse_release_in *inarg = &req->misc.release_in;	inarg->fh = ff->fh;	inarg->flags = file->f_flags & ~O_EXCL;	req->in.h.opcode = isdir ? FUSE_RELEASEDIR : FUSE_RELEASE;	req->in.h.nodeid = get_node_id(inode);	req->inode = inode;	req->in.numargs = 1;	req->in.args[0].size = sizeof(struct fuse_release_in);	req->in.args[0].value = inarg;	request_send_background(fc, req);	kfree(ff);	/* Return value is ignored by VFS */	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/fd72faac95d7e47610e981d7ed7b3c1529e55c88/file.c/buggy/fs/fuse/file.c