From 5b3bf9cc54c0ebd32e3460138e464efc9d13b2bb Mon Sep 17 00:00:00 2001 From: Daniel De Graaf Date: Wed, 8 Sep 2010 18:10:42 -0400 Subject: [PATCH] --- yaml --- r: 231994 b: refs/heads/master c: 7808121b9a1e44ef12fecd49fa6c268f27a150fc h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/xen/xenfs/xenbus.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 6db22fd7ebdc..a1062fc5283c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 76ce7618f9a24f7b13958c67f7d5ccfcdab71475 +refs/heads/master: 7808121b9a1e44ef12fecd49fa6c268f27a150fc diff --git a/trunk/drivers/xen/xenfs/xenbus.c b/trunk/drivers/xen/xenfs/xenbus.c index c4c7db8363e7..55791dd1105f 100644 --- a/trunk/drivers/xen/xenfs/xenbus.c +++ b/trunk/drivers/xen/xenfs/xenbus.c @@ -120,6 +120,7 @@ static ssize_t xenbus_file_read(struct file *filp, int ret; mutex_lock(&u->reply_mutex); +again: while (list_empty(&u->read_buffers)) { mutex_unlock(&u->reply_mutex); if (filp->f_flags & O_NONBLOCK) @@ -158,6 +159,8 @@ static ssize_t xenbus_file_read(struct file *filp, struct read_buffer, list); } } + if (i == 0) + goto again; out: mutex_unlock(&u->reply_mutex);