Content-Transfer-Encoding: 7bit Subject: [PATCH] implement O_NONBLOCK for /proc/xen/xenbus X-Mercurial-Node: 29260da8baac276184bd4266863c0e69d62b9634 Message-Id: <29260da8baac276184bd.1277396873@xxxxxxxxxxxxxxxxxxxxxxx> User-Agent: Mercurial-patchbomb/1.5.3 Date: Thu, 24 Jun 2010 18:27:53 +0200 From: pbonzini@xxxxxxxxxx To: pbonzini@xxxxxxxxxx # HG changeset patch # User Paolo Bonzini # Date 1277396822 -7200 # Node ID 29260da8baac276184bd4266863c0e69d62b9634 # Parent f66d155ce457dab7a191bc199e878c07c2d2aead implement O_NONBLOCK for /proc/xen/xenbus This patch implements O_NONBLOCK for /proc/xen/xenbus. It is a simple matter of returning -EAGAIN instead of waiting on a queue. Signed-off-by: Paolo Bonzini diff --git a/drivers/xen/xenbus/xenbus_dev.c b/drivers/xen/xenbus/xenbus_dev.c --- a/drivers/xen/xenbus/xenbus_dev.c +++ b/drivers/xen/xenbus/xenbus_dev.c @@ -104,6 +104,9 @@ 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)