• P
    gluster: Correctly propagate errors when volume isn't accessible · 4557117d
    Peter Krempa 提交于
    The docs for glfs_init suggest that the function sets errno on every
    failure. In fact it doesn't. As other functions such as
    qemu_gluster_open() in the gluster block code report their errors based
    on this fact we need to make sure that errno is set on each failure.
    
    This fixes a crash of qemu-img/qemu when a gluster brick isn't
    accessible from given host while the server serving the volume
    description is.
    
    Thread 1 (Thread 0x7ffff7fba740 (LWP 203880)):
     #0  0x00007ffff77673f8 in glfs_lseek () from /usr/lib64/libgfapi.so.0
     #1  0x0000555555574a68 in qemu_gluster_getlength ()
     #2  0x0000555555565742 in refresh_total_sectors ()
     #3  0x000055555556914f in bdrv_open_common ()
     #4  0x000055555556e8e8 in bdrv_open ()
     #5  0x000055555556f02f in bdrv_open_image ()
     #6  0x000055555556e5f6 in bdrv_open ()
     #7  0x00005555555c5775 in bdrv_new_open ()
     #8  0x00005555555c5b91 in img_info ()
     #9  0x00007ffff62c9c05 in __libc_start_main () from /lib64/libc.so.6
     #10 0x00005555555648ad in _start ()
    Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
    4557117d
gluster.c 22.2 KB