• A
    rbd: set removing flag while holding list lock · 751cc0e3
    Alex Elder 提交于
    When unmapping a device, its id is supplied, and that is used to
    look up which rbd device should be unmapped.  Looking up the
    device involves searching the rbd device list while holding
    a spinlock that protects access to that list.
    
    Currently all of this is done under protection of the control lock,
    but that protection is going away soon.  To ensure the rbd_dev is
    still valid (still on the list) while setting its REMOVING flag, do
    so while still holding the list lock.  To do so, get rid of
    __rbd_get_dev(), and open code what it did in the one place it
    was used.
    Signed-off-by: NAlex Elder <elder@inktank.com>
    Reviewed-by: NJosh Durgin <josh.durgin@inktank.com>
    751cc0e3
rbd.c 135.4 KB