[dm-devel] [PATCH] libmultipath: fix max_sectors_kb on adding path
Martin Wilck
mwilck at suse.com
Wed Aug 23 19:51:59 UTC 2023
On Wed, 2023-08-23 at 16:24 +0000, Etienne Aujames wrote:
> From: Etienne AUJAMES <eaujames at ddn.com>
>
> A user can change the value of max_sectors_kb on the multipath device
> and its path devices.
> So when a path is deleted and then re-added, its value will not be
> the
> same as the multipath device. In that case the IOs could be mis-
> sized.
>
> On reload, this patch re-apply max_sectors_kb value of the multipath
> device on its path devices.
>
> Signed-off-by: Etienne AUJAMES <eaujames at ddn.com>
Looks good to me.
Reviewed-by: Martin Wilck <mwilck at suse.com>
> ---
> libmultipath/configure.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/libmultipath/configure.c b/libmultipath/configure.c
> index 4a1c28bb..639c0905 100644
> --- a/libmultipath/configure.c
> +++ b/libmultipath/configure.c
> @@ -593,11 +593,12 @@ sysfs_set_max_sectors_kb(struct multipath *mpp,
> int is_reload)
> ssize_t len;
> int i, j, ret, err = 0;
> struct udev_device *udd;
> - int max_sectors_kb;
> + int max_sectors_kb = mpp->max_sectors_kb;
>
> - if (mpp->max_sectors_kb == MAX_SECTORS_KB_UNDEF)
> + /* by default, do not initialize max_sectors_kb on the device
> */
> + if (max_sectors_kb == MAX_SECTORS_KB_UNDEF && !is_reload)
> return 0;
> - max_sectors_kb = mpp->max_sectors_kb;
> + /* on reload, re-apply the user tuning on all the path
> devices
> */
> if (is_reload) {
> if (!has_dm_info(mpp) &&
> dm_get_info(mpp->alias, &mpp->dmi) != 0) {
More information about the dm-devel
mailing list