usblp->writeurb->status = 0; usblp->readurb->status = 0; 
static int usblp_open(struct inode *inode, struct file *file){	int minor = iminor(inode);	struct usblp *usblp;	struct usb_interface *intf;	int retval;	if (minor < 0)		return -ENODEV;	down (&usblp_sem);	retval = -ENODEV;	intf = usb_find_interface(&usblp_driver, minor);	if (!intf) {		goto out;	}	usblp = usb_get_intfdata (intf);	if (!usblp || !usblp->dev || !usblp->present)		goto out;	retval = -EBUSY;	if (usblp->used)		goto out;	/*	 * TODO: need to implement LP_ABORTOPEN + O_NONBLOCK as in drivers/char/lp.c ???	 * This is #if 0-ed because we *don't* want to fail an open	 * just because the printer is off-line.	 */#if 0	if ((retval = usblp_check_status(usblp, 0))) {		retval = retval > 1 ? -EIO : -ENOSPC;		goto out;	}#else	retval = 0;#endif	usblp->used = 1;	file->private_data = usblp;	usblp->writeurb->transfer_buffer_length = 0;	usblp->wcomplete = 1; /* we begin writeable */	usblp->rcomplete = 0;	if (usblp->bidir) {		usblp->readcount = 0;		usblp->readurb->dev = usblp->dev;		if (usb_submit_urb(usblp->readurb, GFP_KERNEL) < 0) {			retval = -EIO;			usblp->used = 0;			file->private_data = NULL;		}	}out:	up (&usblp_sem);	return retval;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2c45b6feb394337b4b468229632b8737375caf1d/usblp.c/clean/drivers/usb/class/usblp.c