rbd: fix up the layering warning message
authorAlex Elder <elder@inktank.com>
Tue, 30 Apr 2013 05:44:32 +0000 (00:44 -0500)
committerSage Weil <sage@inktank.com>
Thu, 2 May 2013 04:20:10 +0000 (21:20 -0700)
A warning gets spewed for any image being probed, including parent
images.  Set up a condition such that the warning message only gets
printed for the image being mapped, not any of its parents.

Also, I didn't like the way the warning ended up being so long.
Make it a terse warning instead.  People experimenting with layering
will know what the message means.

This is part of:
    http://tracker.ceph.com/issues/4867

Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
drivers/block/rbd.c

index 5c1c38dc0b51c09bd1ba36c9d7c0b5c13b4dd127..71e2de2cff221d97e693fd16a8fc726a6a9a3c96 100644 (file)
@@ -4624,8 +4624,15 @@ static int rbd_dev_v2_probe(struct rbd_device *rbd_dev)
                ret = rbd_dev_v2_parent_info(rbd_dev);
                if (ret)
                        goto out_err;
-               rbd_warn(rbd_dev, "WARNING: kernel support for "
-                                       "layered rbd images is EXPERIMENTAL!");
+
+               /*
+                * Don't print a warning for parent images.  We can
+                * tell this point because we won't know its pool
+                * name yet (just its pool id).
+                */
+               if (rbd_dev->spec->pool_name)
+                       rbd_warn(rbd_dev, "WARNING: kernel layering "
+                                       "is EXPERIMENTAL!");
        }
 
        /* If the image supports fancy striping, get its parameters */