aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm.c
diff options
context:
space:
mode:
authorJeffle Xu <jefflexu@linux.alibaba.com>2021-02-02 11:35:28 +0800
committerMike Snitzer <snitzer@redhat.com>2021-02-09 08:45:25 -0500
commita4c8dd9c2d0987cf542a2a0c42684c9c6d78a04e (patch)
tree925f525a4dfaac836d462759646c3ccf5de4e73c /drivers/md/dm.c
parentdm writecache: return the exact table values that were set (diff)
downloadlinux-dev-a4c8dd9c2d0987cf542a2a0c42684c9c6d78a04e.tar.xz
linux-dev-a4c8dd9c2d0987cf542a2a0c42684c9c6d78a04e.zip
dm table: fix iterate_devices based device capability checks
According to the definition of dm_iterate_devices_fn: * This function must iterate through each section of device used by the * target until it encounters a non-zero return code, which it then returns. * Returns zero if no callout returned non-zero. For some target type (e.g. dm-stripe), one call of iterate_devices() may iterate multiple underlying devices internally, in which case a non-zero return code returned by iterate_devices_callout_fn will stop the iteration in advance. No iterate_devices_callout_fn should return non-zero unless device iteration should stop. Rename dm_table_requires_stable_pages() to dm_table_any_dev_attr() and elevate it for reuse to stop iterating (and return non-zero) on the first device that causes iterate_devices_callout_fn to return non-zero. Use dm_table_any_dev_attr() to properly iterate through devices. Rename device_is_nonrot() to device_is_rotational() and invert logic accordingly to fix improper disposition. Fixes: c3c4555edd10 ("dm table: clear add_random unless all devices have it set") Fixes: 4693c9668fdc ("dm table: propagate non rotational flag") Cc: stable@vger.kernel.org Signed-off-by: Jeffle Xu <jefflexu@linux.alibaba.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md/dm.c')
0 files changed, 0 insertions, 0 deletions