• Milan Broz's avatar
    dm table: clear add_random unless all devices have it set · c3c4555e
    Milan Broz authored
    Always clear QUEUE_FLAG_ADD_RANDOM if any underlying device does not
    have it set. Otherwise devices with predictable characteristics may
    contribute entropy.
    
    QUEUE_FLAG_ADD_RANDOM specifies whether or not queue IO timings
    contribute to the random pool.
    
    For bio-based targets this flag is always 0 because such devices have no
    real queue.
    
    For request-based devices this flag was always set to 1 by default.
    
    Now set it according to the flags on underlying devices. If there is at
    least one device which should not contribute, set the flag to zero: If a
    device, such as fast SSD storage, is not suitable for supplying entropy,
    a request-based queue stacked over it will not be either.
    
    Because the checking logic is exactly same as for the rotational flag,
    share the iteration function with device_is_nonrot().
    Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    c3c4555e
dm-table.c 36.8 KB