xen-blkback: fix foreach_grant_safe to handle empty lists
authorRoger Pau Monne <roger.pau@citrix.com>
Mon, 18 Mar 2013 16:49:33 +0000 (17:49 +0100)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Tue, 19 Mar 2013 12:53:15 +0000 (08:53 -0400)
We may use foreach_grant_safe in the future with empty lists, so make
sure we can handle them.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Cc: xen-devel@lists.xen.org
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/block/xen-blkback/blkback.c

index 477a17c20820d74422f7549106a3e583df838a40..2cf8381a1c6e6fdc0c49344fcc111603611f2f94 100644 (file)
@@ -164,7 +164,7 @@ static void make_response(struct xen_blkif *blkif, u64 id,
 
 #define foreach_grant_safe(pos, n, rbtree, node) \
        for ((pos) = container_of(rb_first((rbtree)), typeof(*(pos)), node), \
-            (n) = rb_next(&(pos)->node); \
+            (n) = (&(pos)->node != NULL) ? rb_next(&(pos)->node) : NULL; \
             &(pos)->node != NULL; \
             (pos) = container_of(n, typeof(*(pos)), node), \
             (n) = (&(pos)->node != NULL) ? rb_next(&(pos)->node) : NULL)