aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/printer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/gadget/printer.c')
-rw-r--r--drivers/usb/gadget/printer.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/gadget/printer.c b/drivers/usb/gadget/printer.c
index d5df8dd9d58e..a341dde6f9c3 100644
--- a/drivers/usb/gadget/printer.c
+++ b/drivers/usb/gadget/printer.c
@@ -794,12 +794,14 @@ printer_write(struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
794} 794}
795 795
796static int 796static int
797printer_fsync(struct file *fd, int datasync) 797printer_fsync(struct file *fd, loff_t start, loff_t end, int datasync)
798{ 798{
799 struct printer_dev *dev = fd->private_data; 799 struct printer_dev *dev = fd->private_data;
800 struct inode *inode = fd->f_path.dentry->d_inode;
800 unsigned long flags; 801 unsigned long flags;
801 int tx_list_empty; 802 int tx_list_empty;
802 803
804 mutex_lock(&inode->i_mutex);
803 spin_lock_irqsave(&dev->lock, flags); 805 spin_lock_irqsave(&dev->lock, flags);
804 tx_list_empty = (likely(list_empty(&dev->tx_reqs))); 806 tx_list_empty = (likely(list_empty(&dev->tx_reqs)));
805 spin_unlock_irqrestore(&dev->lock, flags); 807 spin_unlock_irqrestore(&dev->lock, flags);
@@ -809,6 +811,7 @@ printer_fsync(struct file *fd, int datasync)
809 wait_event_interruptible(dev->tx_flush_wait, 811 wait_event_interruptible(dev->tx_flush_wait,
810 (likely(list_empty(&dev->tx_reqs_active)))); 812 (likely(list_empty(&dev->tx_reqs_active))));
811 } 813 }
814 mutex_unlock(&inode->i_mutex);
812 815
813 return 0; 816 return 0;
814} 817}