dm: allow targets to request flushes regardless of underlying device support
Allow targets to override the 'supports flush' calculation. Set 'flush_supported' if a target needs to receive flushes regardless of whether or not its underlying devices have support. Signed-off-by: Joe Thornber <ejt@redhat.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com>
This commit is contained in:
committed by
Alasdair G Kergon
parent
f4b90369d3
commit
0e9c24ed74
@@ -1319,6 +1319,9 @@ static bool dm_table_supports_flush(struct dm_table *t, unsigned flush)
|
|||||||
if (!ti->num_flush_requests)
|
if (!ti->num_flush_requests)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (ti->flush_supported)
|
||||||
|
return 1;
|
||||||
|
|
||||||
if (ti->type->iterate_devices &&
|
if (ti->type->iterate_devices &&
|
||||||
ti->type->iterate_devices(ti, device_flush_capable, &flush))
|
ti->type->iterate_devices(ti, device_flush_capable, &flush))
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -211,6 +211,12 @@ struct dm_target {
|
|||||||
/* Used to provide an error string from the ctr */
|
/* Used to provide an error string from the ctr */
|
||||||
char *error;
|
char *error;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set if this target needs to receive flushes regardless of
|
||||||
|
* whether or not its underlying devices have support.
|
||||||
|
*/
|
||||||
|
bool flush_supported:1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set if this target needs to receive discards regardless of
|
* Set if this target needs to receive discards regardless of
|
||||||
* whether or not its underlying devices have support.
|
* whether or not its underlying devices have support.
|
||||||
|
|||||||
Reference in New Issue
Block a user