diff options
author | Mike Snitzer <snitzer@redhat.com> | 2011-08-02 13:32:01 +0200 |
---|---|---|
committer | Alasdair G Kergon <agk@redhat.com> | 2011-08-02 13:32:01 +0200 |
commit | 936688d7eb0f39be96c5791be1a04994cc8d6aa0 (patch) | |
tree | 4001f52284d39f5353174096e76b357f52ee2fb7 /drivers/md/dm.c | |
parent | dm: suppress endian warnings (diff) | |
download | linux-936688d7eb0f39be96c5791be1a04994cc8d6aa0.tar.xz linux-936688d7eb0f39be96c5791be1a04994cc8d6aa0.zip |
dm table: fix discard support
Remove 'discards_supported' from the dm_table structure. The same
information can be easily discovered from the table's target(s) in
dm_table_supports_discards().
Before this fix dm_table_supports_discards() would skip checking the
individual targets' 'discards_supported' flag if any one target in the
table didn't set num_discard_requests > 0. Now the per-target
'discards_supported' flag is effective at insuring the final DM device
advertises discard support. But, to be clear, targets that don't
support discards (!num_discard_requests) will not receive discard
requests.
Also DMWARN if a target sets 'discards_supported' override but forgets
to set 'num_discard_requests'.
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Diffstat (limited to 'drivers/md/dm.c')
-rw-r--r-- | drivers/md/dm.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 41abc6dd481b..aeb0fa1ccfe4 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -1179,7 +1179,8 @@ static int __clone_and_map_discard(struct clone_info *ci) /* * Even though the device advertised discard support, - * reconfiguration might have changed that since the + * that does not mean every target supports it, and + * reconfiguration might also have changed that since the * check was performed. */ if (!ti->num_discard_requests) |