From 2b1dc0bb0a3c2fe44b1527aa7123072e40389fea Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Wed, 25 Jul 2012 09:32:40 -0500 Subject: [PATCH] --- yaml --- r: 320352 b: refs/heads/master c: 8e94af8e2b582e5915abc171a28130881d1c26e4 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/rbd.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 99e075c97ce0..3de27db251c3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: aa711ee3402ad10ffd5b70ce0417fadc9a95cccf +refs/heads/master: 8e94af8e2b582e5915abc171a28130881d1c26e4 diff --git a/trunk/drivers/block/rbd.c b/trunk/drivers/block/rbd.c index bb7f436b1765..ae65fac2c42b 100644 --- a/trunk/drivers/block/rbd.c +++ b/trunk/drivers/block/rbd.c @@ -481,6 +481,12 @@ static void rbd_coll_release(struct kref *kref) kfree(coll); } +static bool rbd_dev_ondisk_valid(struct rbd_image_header_ondisk *ondisk) +{ + return !memcmp(&ondisk->text, + RBD_HEADER_TEXT, sizeof (RBD_HEADER_TEXT)); +} + /* * Create a new header structure, translate header format from the on-disk * header. @@ -492,7 +498,7 @@ static int rbd_header_from_disk(struct rbd_image_header *header, { u32 i, snap_count; - if (memcmp(ondisk, RBD_HEADER_TEXT, sizeof(RBD_HEADER_TEXT))) + if (!rbd_dev_ondisk_valid(ondisk)) return -ENXIO; snap_count = le32_to_cpu(ondisk->snap_count);