This is a note to let you know that I've just added the patch titled loop: Call loop_config_discard() only after new config is applied to the 4.19-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: loop-call-loop_config_discard-only-after-new-config-is-applied.patch and it can be found in the queue-4.19 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From stable+bounces-25716-greg=kroah.com@xxxxxxxxxxxxxxx Fri Mar 1 02:34:33 2024 From: Genjian <zhanggenjian@xxxxxxx> Date: Fri, 1 Mar 2024 09:30:21 +0800 Subject: loop: Call loop_config_discard() only after new config is applied To: stable@xxxxxxxxxxxxxxx Cc: axboe@xxxxxxxxx, stable@xxxxxxxxxx, linux-block@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, zhanggenjian123@xxxxxxxxx, Martijn Coenen <maco@xxxxxxxxxxx>, Christoph Hellwig <hch@xxxxxx>, Bob Liu <bob.liu@xxxxxxxxxx>, Bart Van Assche <bvanassche@xxxxxxx>, Genjian Zhang <zhanggenjian@xxxxxxxxxx> Message-ID: <20240301013028.2293831-3-zhanggenjian@xxxxxxx> From: Martijn Coenen <maco@xxxxxxxxxxx> [ Upstream commit 7c5014b0987a30e4989c90633c198aced454c0ec ] loop_set_status() calls loop_config_discard() to configure discard for the loop device; however, the discard configuration depends on whether the loop device uses encryption, and when we call it the encryption configuration has not been updated yet. Move the call down so we apply the correct discard configuration based on the new configuration. Signed-off-by: Martijn Coenen <maco@xxxxxxxxxxx> Reviewed-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Bob Liu <bob.liu@xxxxxxxxxx> Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx> Signed-off-by: Jens Axboe <axboe@xxxxxxxxx> Signed-off-by: Genjian Zhang <zhanggenjian@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/block/loop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -1286,8 +1286,6 @@ loop_set_status(struct loop_device *lo, } } - loop_config_discard(lo); - memcpy(lo->lo_file_name, info->lo_file_name, LO_NAME_SIZE); memcpy(lo->lo_crypt_name, info->lo_crypt_name, LO_NAME_SIZE); lo->lo_file_name[LO_NAME_SIZE-1] = 0; @@ -1311,6 +1309,8 @@ loop_set_status(struct loop_device *lo, lo->lo_key_owner = uid; } + loop_config_discard(lo); + /* update dio if lo_offset or transfer is changed */ __loop_update_dio(lo, lo->use_dio); Patches currently in stable-queue which might be from kroah.com@xxxxxxxxxxxxxxx are queue-4.19/loop-factor-out-configuring-loop-from-status.patch queue-4.19/loop-call-loop_config_discard-only-after-new-config-is-applied.patch queue-4.19/loop-refactor-loop_set_status-size-calculation.patch queue-4.19/loop-factor-out-setting-loop-device-size.patch queue-4.19/loop-check-for-overflow-while-configuring-loop.patch queue-4.19/loop-properly-observe-rotational-flag-of-underlying-device.patch queue-4.19/loop-remove-sector_t-truncation-checks.patch queue-4.19/revert-loop-check-for-overflow-while-configuring-loop.patch queue-4.19/loop-loop_set_status_from_info-check-before-assignment.patch