• Toshi Kani's avatar
    dm: add infrastructure for DAX support · 545ed20e
    Toshi Kani authored
    Change mapped device to implement direct_access function,
    dm_blk_direct_access(), which calls a target direct_access function.
    'struct target_type' is extended to have target direct_access interface.
    This function limits direct accessible size to the dm_target's limit
    with max_io_len().
    
    Add dm_table_supports_dax() to iterate all targets and associated block
    devices to check for DAX support.  To add DAX support to a DM target the
    target must only implement the direct_access function.
    
    Add a new dm type, DM_TYPE_DAX_BIO_BASED, which indicates that mapped
    device supports DAX and is bio based.  This new type is used to assure
    that all target devices have DAX support and remain that way after
    QUEUE_FLAG_DAX is set in mapped device.
    
    At initial table load, QUEUE_FLAG_DAX is set to mapped device when setting
    DM_TYPE_DAX_BIO_BASED to the type.  Any subsequent table load to the
    mapped device must have the same type, or else it fails per the check in
    table_load().
    Signed-off-by: default avatarToshi Kani <toshi.kani@hpe.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    545ed20e
dm.c 62 KB