Skip to content
Snippets Groups Projects
  • Vladimir Sementsov-Ogievskiy's avatar
    985cac8f
    blockjob: drop BlockJob.blk field · 985cac8f
    Vladimir Sementsov-Ogievskiy authored
    
    It's unused now (except for permission handling)[*]. The only reasonable
    user of it was block-stream job, recently updated to use own blk. And
    other block jobs prefer to use own source node related objects.
    
    So, the arguments of dropping the field are:
    
     - block jobs prefer not to use it
     - block jobs usually has more then one node to operate on, and better
       to operate symmetrically (for example has both source and target
       blk's in specific block-job state structure)
    
    *: BlockJob.blk is used to keep some permissions. We simply move
    permissions to block-job child created in block_job_create() together
    with blk.
    
    In mirror, we just should not care anymore about restoring state of
    blk. Most probably this code could be dropped long ago, after dropping
    bs->job pointer. Now it finally goes away together with BlockJob.blk
    itself.
    
    iotest 141 output is updated, as "bdrv_has_blk(bs)" check in
    qmp_blockdev_del() doesn't fail (we don't have blk now). Still, new
    error message looks even better.
    
    In iotest 283 we need to add a job id, otherwise "Invalid job ID"
    happens now earlier than permission check (as permissions moved from
    blk to block-job node).
    
    Signed-off-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
    Reviewed-by: default avatarNikita Lapshin <nikita.lapshin@virtuozzo.com>
    985cac8f
    History
    blockjob: drop BlockJob.blk field
    Vladimir Sementsov-Ogievskiy authored
    
    It's unused now (except for permission handling)[*]. The only reasonable
    user of it was block-stream job, recently updated to use own blk. And
    other block jobs prefer to use own source node related objects.
    
    So, the arguments of dropping the field are:
    
     - block jobs prefer not to use it
     - block jobs usually has more then one node to operate on, and better
       to operate symmetrically (for example has both source and target
       blk's in specific block-job state structure)
    
    *: BlockJob.blk is used to keep some permissions. We simply move
    permissions to block-job child created in block_job_create() together
    with blk.
    
    In mirror, we just should not care anymore about restoring state of
    blk. Most probably this code could be dropped long ago, after dropping
    bs->job pointer. Now it finally goes away together with BlockJob.blk
    itself.
    
    iotest 141 output is updated, as "bdrv_has_blk(bs)" check in
    qmp_blockdev_del() doesn't fail (we don't have blk now). Still, new
    error message looks even better.
    
    In iotest 283 we need to add a job id, otherwise "Invalid job ID"
    happens now earlier than permission check (as permissions moved from
    blk to block-job node).
    
    Signed-off-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
    Reviewed-by: default avatarNikita Lapshin <nikita.lapshin@virtuozzo.com>