if (req->inode) iput(req->inode); if (req->inode2) iput(req->inode2); if (req->file) fput(req->file); 
down_read(&fc->sbput_sem); if (fc->mounted) fuse_release_background(req); up_read(&fc->sbput_sem); 
static void request_end(struct fuse_conn *fc, struct fuse_req *req){	int putback;	req->finished = 1;	putback = atomic_dec_and_test(&req->count);	spin_unlock(&fuse_lock);	if (req->background) {		if (req->inode)			iput(req->inode);		if (req->inode2)			iput(req->inode2);		if (req->file)			fput(req->file);	}	wake_up(&req->waitq);	if (req->in.h.opcode == FUSE_INIT) {		int i;		if (req->misc.init_in_out.major != FUSE_KERNEL_VERSION)			fc->conn_error = 1;		/* After INIT reply is received other requests can go		   out.  So do (FUSE_MAX_OUTSTANDING - 1) number of		   up()s on outstanding_sem.  The last up() is done in		   fuse_putback_request() */		for (i = 1; i < FUSE_MAX_OUTSTANDING; i++)			up(&fc->outstanding_sem);	}	if (putback)		fuse_putback_request(fc, req);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1e9a4ed9396e9c31139721b639550ffb1df17065/dev.c/clean/fs/fuse/dev.c