summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@gmail.com>2011-06-20 13:27:44 +0200
committerJens Axboe <jaxboe@fusionio.com>2011-06-20 13:27:44 +0200
commit80ceb057135ad77f513277f3bcd04b885501877a (patch)
tree78e4c78028097ddcf8229133701d6659bb44fa23 /block
parent2c53b436a30867eb6b47dd7bab23ba638d1fb0d2 (diff)
downloadlinux-stable-80ceb057135ad77f513277f3bcd04b885501877a.tar.gz
linux-stable-80ceb057135ad77f513277f3bcd04b885501877a.tar.bz2
linux-stable-80ceb057135ad77f513277f3bcd04b885501877a.zip
bsg: fix bsg_poll() to return POLLOUT properly
POLLOUT should be returned only if bd->queued_cmds < bd->max_queue so that bsg_alloc_command() can proceed. Signed-off-by: Namhyung Kim <namhyung@gmail.com> Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'block')
-rw-r--r--block/bsg.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/bsg.c b/block/bsg.c
index 0c8b64a16484..c4f49e255751 100644
--- a/block/bsg.c
+++ b/block/bsg.c
@@ -878,7 +878,7 @@ static unsigned int bsg_poll(struct file *file, poll_table *wait)
spin_lock_irq(&bd->lock);
if (!list_empty(&bd->done_list))
mask |= POLLIN | POLLRDNORM;
- if (bd->queued_cmds >= bd->max_queue)
+ if (bd->queued_cmds < bd->max_queue)
mask |= POLLOUT;
spin_unlock_irq(&bd->lock);