linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] loop: Call loop_config_discard() only after new config is applied.
@ 2020-03-31 11:41 Martijn Coenen
  2020-04-14  8:13 ` Martijn Coenen
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Martijn Coenen @ 2020-03-31 11:41 UTC (permalink / raw)
  To: axboe, hch
  Cc: ming.lei, bvanassche, Chaitanya.Kulkarni, linux-block,
	linux-kernel, kernel-team, Martijn Coenen

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@android.com>
---
 drivers/block/loop.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 739b372a5112..7c9dcb6007a6 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -1312,8 +1312,6 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info)
 		}
 	}
 
-	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;
@@ -1337,6 +1335,8 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info)
 		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);
 
-- 
2.26.0.rc2.310.g2932bb562d-goog


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] loop: Call loop_config_discard() only after new config is applied.
  2020-03-31 11:41 [PATCH] loop: Call loop_config_discard() only after new config is applied Martijn Coenen
@ 2020-04-14  8:13 ` Martijn Coenen
  2020-04-14  8:16 ` Christoph Hellwig
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Martijn Coenen @ 2020-04-14  8:13 UTC (permalink / raw)
  To: Jens Axboe, Christoph Hellwig
  Cc: Ming Lei, Bart Van Assche, Chaitanya Kulkarni, linux-block, LKML,
	kernel-team

Folks, any thoughts about this one?

Thanks,
Martijn

On Tue, Mar 31, 2020 at 1:41 PM Martijn Coenen <maco@android.com> wrote:
>
> 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@android.com>
> ---
>  drivers/block/loop.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/block/loop.c b/drivers/block/loop.c
> index 739b372a5112..7c9dcb6007a6 100644
> --- a/drivers/block/loop.c
> +++ b/drivers/block/loop.c
> @@ -1312,8 +1312,6 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info)
>                 }
>         }
>
> -       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;
> @@ -1337,6 +1335,8 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info)
>                 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);
>
> --
> 2.26.0.rc2.310.g2932bb562d-goog
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] loop: Call loop_config_discard() only after new config is applied.
  2020-03-31 11:41 [PATCH] loop: Call loop_config_discard() only after new config is applied Martijn Coenen
  2020-04-14  8:13 ` Martijn Coenen
@ 2020-04-14  8:16 ` Christoph Hellwig
  2020-04-17  0:19 ` Bob Liu
  2020-04-18 15:46 ` Bart Van Assche
  3 siblings, 0 replies; 6+ messages in thread
From: Christoph Hellwig @ 2020-04-14  8:16 UTC (permalink / raw)
  To: Martijn Coenen
  Cc: axboe, hch, ming.lei, bvanassche, Chaitanya.Kulkarni,
	linux-block, linux-kernel, kernel-team

On Tue, Mar 31, 2020 at 01:41:16PM +0200, Martijn Coenen wrote:
> 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@android.com>

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] loop: Call loop_config_discard() only after new config is applied.
  2020-03-31 11:41 [PATCH] loop: Call loop_config_discard() only after new config is applied Martijn Coenen
  2020-04-14  8:13 ` Martijn Coenen
  2020-04-14  8:16 ` Christoph Hellwig
@ 2020-04-17  0:19 ` Bob Liu
  2020-04-18 15:46 ` Bart Van Assche
  3 siblings, 0 replies; 6+ messages in thread
From: Bob Liu @ 2020-04-17  0:19 UTC (permalink / raw)
  To: Martijn Coenen, axboe, hch
  Cc: ming.lei, bvanassche, Chaitanya.Kulkarni, linux-block,
	linux-kernel, kernel-team

On 3/31/20 7:41 PM, Martijn Coenen wrote:
> 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@android.com>

Looks fine to me.
Reviewed-by: Bob Liu <bob.liu@oracle.com>

> ---
>  drivers/block/loop.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/block/loop.c b/drivers/block/loop.c
> index 739b372a5112..7c9dcb6007a6 100644
> --- a/drivers/block/loop.c
> +++ b/drivers/block/loop.c
> @@ -1312,8 +1312,6 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info)
>  		}
>  	}
>  
> -	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;
> @@ -1337,6 +1335,8 @@ loop_set_status(struct loop_device *lo, const struct loop_info64 *info)
>  		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);
>  
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] loop: Call loop_config_discard() only after new config is applied.
  2020-03-31 11:41 [PATCH] loop: Call loop_config_discard() only after new config is applied Martijn Coenen
                   ` (2 preceding siblings ...)
  2020-04-17  0:19 ` Bob Liu
@ 2020-04-18 15:46 ` Bart Van Assche
  2020-05-04 19:32   ` Martijn Coenen
  3 siblings, 1 reply; 6+ messages in thread
From: Bart Van Assche @ 2020-04-18 15:46 UTC (permalink / raw)
  To: Martijn Coenen, axboe, hch
  Cc: ming.lei, Chaitanya.Kulkarni, linux-block, linux-kernel, kernel-team

On 2020-03-31 04:41, Martijn Coenen wrote:
> 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.

Reviewed-by: Bart Van Assche <bvanassche@acm.org>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] loop: Call loop_config_discard() only after new config is applied.
  2020-04-18 15:46 ` Bart Van Assche
@ 2020-05-04 19:32   ` Martijn Coenen
  0 siblings, 0 replies; 6+ messages in thread
From: Martijn Coenen @ 2020-05-04 19:32 UTC (permalink / raw)
  To: Jens Axboe
  Cc: Christoph Hellwig, Ming Lei, Chaitanya Kulkarni, linux-block,
	LKML, kernel-team, Bart Van Assche

Hi Jens,

Are you ok with this one? One of my later series depends on it, but so
far I've kept it separate because it's a bug fix.

Thanks,
Martijn

On Sat, Apr 18, 2020 at 5:46 PM Bart Van Assche <bvanassche@acm.org> wrote:
>
> On 2020-03-31 04:41, Martijn Coenen wrote:
> > 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.
>
> Reviewed-by: Bart Van Assche <bvanassche@acm.org>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-05-04 19:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-31 11:41 [PATCH] loop: Call loop_config_discard() only after new config is applied Martijn Coenen
2020-04-14  8:13 ` Martijn Coenen
2020-04-14  8:16 ` Christoph Hellwig
2020-04-17  0:19 ` Bob Liu
2020-04-18 15:46 ` Bart Van Assche
2020-05-04 19:32   ` Martijn Coenen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).