From: Hans Verkuil Date: Fri, 7 Sep 2012 15:50:02 +0000 (-0300) Subject: [media] vb2: fix wrong owner check X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=8c82c75c3950dea31fe03567125feea089893141;p=openwrt%2Fstaging%2Fblogic.git [media] vb2: fix wrong owner check Check against q->fileio to see if the queue owner should be set or not. The former check against the return value of read or write is wrong, since read/write can return an error, even if the queue is in streaming mode. For example, EAGAIN when in non-blocking mode. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/v4l2-core/videobuf2-core.c b/drivers/media/v4l2-core/videobuf2-core.c index 4da3df61901f..59ed5223393b 100644 --- a/drivers/media/v4l2-core/videobuf2-core.c +++ b/drivers/media/v4l2-core/videobuf2-core.c @@ -2278,7 +2278,7 @@ ssize_t vb2_fop_write(struct file *file, char __user *buf, goto exit; err = vb2_write(vdev->queue, buf, count, ppos, file->f_flags & O_NONBLOCK); - if (err >= 0) + if (vdev->queue->fileio) vdev->queue->owner = file->private_data; exit: if (lock) @@ -2300,7 +2300,7 @@ ssize_t vb2_fop_read(struct file *file, char __user *buf, goto exit; err = vb2_read(vdev->queue, buf, count, ppos, file->f_flags & O_NONBLOCK); - if (err >= 0) + if (vdev->queue->fileio) vdev->queue->owner = file->private_data; exit: if (lock)