summaryrefslogtreecommitdiff
path: root/drivers/xen/xenfs
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2010-08-05 01:49:24 +0400
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2010-08-05 01:49:24 +0400
commit7cc88fdcff3cc7f0d5d2384ffd7f6d4ce9a745f1 (patch)
treeaec5432786f7cb1d5042dbb97a1995109a1ce3e3 /drivers/xen/xenfs
parentca50a5f39041497253c6362f2ba4da1b56d3e6cb (diff)
parent6280f190da4dd083f14f704be6b3314311a7eacb (diff)
downloadlinux-7cc88fdcff3cc7f0d5d2384ffd7f6d4ce9a745f1.tar.xz
Merge branch 'xen/xenbus' into upstream/xen
* xen/xenbus: implement O_NONBLOCK for /proc/xen/xenbus xenbus: do not hold transaction_mutex when returning to userspace
Diffstat (limited to 'drivers/xen/xenfs')
-rw-r--r--drivers/xen/xenfs/xenbus.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/xen/xenfs/xenbus.c b/drivers/xen/xenfs/xenbus.c
index f28ece397361..3b39c3752e21 100644
--- a/drivers/xen/xenfs/xenbus.c
+++ b/drivers/xen/xenfs/xenbus.c
@@ -124,6 +124,9 @@ static ssize_t xenbus_file_read(struct file *filp,
mutex_lock(&u->reply_mutex);
while (list_empty(&u->read_buffers)) {
mutex_unlock(&u->reply_mutex);
+ if (filp->f_flags & O_NONBLOCK)
+ return -EAGAIN;
+
ret = wait_event_interruptible(u->read_waitq,
!list_empty(&u->read_buffers));
if (ret)