• Alex Elder's avatar
    rbd: have rbd_dev_image_id() set format 1 image id · c0fba368
    Alex Elder authored
    Currently, rbd_dev_probe() assumes that any error returned by
    rbd_dev_image_id() is most likely -ENOENT, and responds by
    calling the format 1 probe routine, rbd_dev_v1_probe().  Then,
    at the top of rbd_dev_v1_probe(), an empty string is allocated
    for the image id.
    
    This is sort of unbalanced.  Fix this by having rbd_dev_image_id()
    look for -ENOENT from its "get_id" method call.  If that is seen,
    have it allocate the empty string there rather than depending on
    rbd_dev_v1_probe() to do it.
    
    Given that this is effectively defining the format of the image,
    set rbd_dev->image_format inside rbd_dev_image_id() rather than in
    the format-specific probe routines.
    
    Also drop a redundant hunk of code in rbd_dev_image_id().
    Signed-off-by: default avatarAlex Elder <elder@inktank.com>
    Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
    c0fba368
rbd.c 128 KB