Commit 3e48d8d2 authored by Pavel Begunkov's avatar Pavel Begunkov Committed by David Sterba
Browse files

btrfs: discard: reschedule work after sysfs param update



After sysfs updates discard's iops_limit or kbps_limit it also needs to
adjust current timer through rescheduling, otherwise the discard work
may wait for a long time for the previous timer to expire or bumped by
someone else.

Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent df903e5d
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -458,7 +458,8 @@ static ssize_t btrfs_discard_iops_limit_store(struct kobject *kobj,
		return -EINVAL;

	WRITE_ONCE(discard_ctl->iops_limit, iops_limit);

	btrfs_discard_calc_delay(discard_ctl);
	btrfs_discard_schedule_work(discard_ctl, true);
	return len;
}
BTRFS_ATTR_RW(discard, iops_limit, btrfs_discard_iops_limit_show,
@@ -488,7 +489,7 @@ static ssize_t btrfs_discard_kbps_limit_store(struct kobject *kobj,
		return -EINVAL;

	WRITE_ONCE(discard_ctl->kbps_limit, kbps_limit);

	btrfs_discard_schedule_work(discard_ctl, true);
	return len;
}
BTRFS_ATTR_RW(discard, kbps_limit, btrfs_discard_kbps_limit_show,