dm thin: fix table output when pool target disables discard passdown internally
authorMike Snitzer <snitzer@redhat.com>
Sat, 19 May 2012 00:01:01 +0000 (01:01 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Sat, 19 May 2012 00:01:01 +0000 (01:01 +0100)
commitf402693d06f32e746c6153e459c5fb064fa02741
treec4cfcf2702b3e5a1e94e3c3b923b52c413e4325a
parent36be50515fe2aef61533b516fa2576a2c7fe7664
dm thin: fix table output when pool target disables discard passdown internally

When the thin pool target clears the discard_passdown parameter
internally, it incorrectly changes the table line reported to userspace.
This breaks dumb string comparisons on these table lines in generic
userspace device-mapper library code and leads to tables being reloaded
repeatedly when nothing is actually meant to be changing.

This patch corrects this by no longer changing the table line when
discard passdown was disabled.

We can still tell when discard passdown is overridden by looking for the
message "Discard unsupported by data device (sdX): Disabling discard passdown."

This automatic detection is also moved from the 'load' to the 'resume'
so that it is re-evaluated should the properties of underlying devices
change.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Acked-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-thin.c