• M
    block: Add bdrv_child_refresh_perms() · c1087f12
    Max Reitz 提交于
    If a block node uses bdrv_child_try_set_perm() to change the permission
    it takes on its child, the result may be very short-lived.  If anything
    makes the block layer recalculate the permissions internally, it will
    invoke the node driver's .bdrv_child_perm() implementation.  The
    permission/shared permissions masks that returns will then override the
    values previously passed to bdrv_child_try_set_perm().
    
    If drivers want a child edge to have specific values for the
    permissions/shared permissions mask, it must return them in
    .bdrv_child_perm().  Consequentially, there is no need for them to pass
    the same values to bdrv_child_try_set_perm() then: It is better to have
    a function that invokes .bdrv_child_perm() and calls
    bdrv_child_try_set_perm() with the result.  This patch adds such a
    function under the name of bdrv_child_refresh_perms().
    Signed-off-by: NMax Reitz <mreitz@redhat.com>
    Reviewed-by: NKevin Wolf <kwolf@redhat.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    c1087f12
block.c 193.2 KB