* Patch "loop: fix LO_FLAGS_PARTSCAN hang" has been added to the 4.10-stable tree
@ 2017-03-08 15:39 gregkh
2017-03-08 15:47 ` Jens Axboe
0 siblings, 1 reply; 6+ messages in thread
From: gregkh @ 2017-03-08 15:39 UTC (permalink / raw)
To: osandov, axboe, gregkh, tj, tom.leiming; +Cc: stable, stable-commits
This is a note to let you know that I've just added the patch titled
loop: fix LO_FLAGS_PARTSCAN hang
to the 4.10-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-fix-lo_flags_partscan-hang.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
>From e02898b423802b1f3a3aaa7f16e896da069ba8f7 Mon Sep 17 00:00:00 2001
From: Omar Sandoval <osandov@fb.com>
Date: Wed, 1 Mar 2017 10:42:38 -0800
Subject: loop: fix LO_FLAGS_PARTSCAN hang
From: Omar Sandoval <osandov@fb.com>
commit e02898b423802b1f3a3aaa7f16e896da069ba8f7 upstream.
loop_reread_partitions() needs to do I/O, but we just froze the queue,
so we end up waiting forever. This can easily be reproduced with losetup
-P. Fix it by moving the reread to after we unfreeze the queue.
Fixes: ecdd09597a57 ("block/loop: fix race between I/O and set_status")
Reported-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/block/loop.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -1142,13 +1142,6 @@ loop_set_status(struct loop_device *lo,
(info->lo_flags & LO_FLAGS_AUTOCLEAR))
lo->lo_flags ^= LO_FLAGS_AUTOCLEAR;
- if ((info->lo_flags & LO_FLAGS_PARTSCAN) &&
- !(lo->lo_flags & LO_FLAGS_PARTSCAN)) {
- lo->lo_flags |= LO_FLAGS_PARTSCAN;
- lo->lo_disk->flags &= ~GENHD_FL_NO_PART_SCAN;
- loop_reread_partitions(lo, lo->lo_device);
- }
-
lo->lo_encrypt_key_size = info->lo_encrypt_key_size;
lo->lo_init[0] = info->lo_init[0];
lo->lo_init[1] = info->lo_init[1];
@@ -1163,6 +1156,14 @@ loop_set_status(struct loop_device *lo,
exit:
blk_mq_unfreeze_queue(lo->lo_queue);
+
+ if (!err && (info->lo_flags & LO_FLAGS_PARTSCAN) &&
+ !(lo->lo_flags & LO_FLAGS_PARTSCAN)) {
+ lo->lo_flags |= LO_FLAGS_PARTSCAN;
+ lo->lo_disk->flags &= ~GENHD_FL_NO_PART_SCAN;
+ loop_reread_partitions(lo, lo->lo_device);
+ }
+
return err;
}
Patches currently in stable-queue which might be from osandov@fb.com are
queue-4.10/loop-fix-lo_flags_partscan-hang.patch
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Patch "loop: fix LO_FLAGS_PARTSCAN hang" has been added to the 4.10-stable tree
2017-03-08 15:39 Patch "loop: fix LO_FLAGS_PARTSCAN hang" has been added to the 4.10-stable tree gregkh
@ 2017-03-08 15:47 ` Jens Axboe
2017-03-08 15:52 ` Omar Sandoval
2017-03-08 15:55 ` Greg KH
0 siblings, 2 replies; 6+ messages in thread
From: Jens Axboe @ 2017-03-08 15:47 UTC (permalink / raw)
To: gregkh, osandov, tj, tom.leiming; +Cc: stable, stable-commits
On 03/08/2017 08:39 AM, gregkh@linuxfoundation.org wrote:
>
> This is a note to let you know that I've just added the patch titled
>
> loop: fix LO_FLAGS_PARTSCAN hang
>
> to the 4.10-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-fix-lo_flags_partscan-hang.patch
> and it can be found in the queue-4.10 subdirectory.
>
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable@vger.kernel.org> know about it.
>
>
> From e02898b423802b1f3a3aaa7f16e896da069ba8f7 Mon Sep 17 00:00:00 2001
> From: Omar Sandoval <osandov@fb.com>
> Date: Wed, 1 Mar 2017 10:42:38 -0800
> Subject: loop: fix LO_FLAGS_PARTSCAN hang
>
> From: Omar Sandoval <osandov@fb.com>
>
> commit e02898b423802b1f3a3aaa7f16e896da069ba8f7 upstream.
>
> loop_reread_partitions() needs to do I/O, but we just froze the queue,
> so we end up waiting forever. This can easily be reproduced with losetup
> -P. Fix it by moving the reread to after we unfreeze the queue.
>
> Fixes: ecdd09597a57 ("block/loop: fix race between I/O and set_status")
> Reported-by: Tejun Heo <tj@kernel.org>
> Signed-off-by: Omar Sandoval <osandov@fb.com>
> Reviewed-by: Ming Lei <tom.leiming@gmail.com>
> Signed-off-by: Jens Axboe <axboe@fb.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Why is this being added to a bunch of trees that don't have the commit
that it fixes? It should not go into any of these.
--
Jens Axboe
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Patch "loop: fix LO_FLAGS_PARTSCAN hang" has been added to the 4.10-stable tree
2017-03-08 15:47 ` Jens Axboe
@ 2017-03-08 15:52 ` Omar Sandoval
2017-03-08 15:55 ` Jens Axboe
2017-03-08 15:55 ` Greg KH
1 sibling, 1 reply; 6+ messages in thread
From: Omar Sandoval @ 2017-03-08 15:52 UTC (permalink / raw)
To: Jens Axboe, gregkh, tj, tom.leiming; +Cc: stable, stable-commits
On 03/08/2017 07:47 AM, Jens Axboe wrote:
> On 03/08/2017 08:39 AM, gregkh@linuxfoundation.org wrote:
>>
>> This is a note to let you know that I've just added the patch titled
>>
>> loop: fix LO_FLAGS_PARTSCAN hang
>>
>> to the 4.10-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-fix-lo_flags_partscan-hang.patch
>> and it can be found in the queue-4.10 subdirectory.
>>
>> If you, or anyone else, feels it should not be added to the stable tree,
>> please let <stable@vger.kernel.org> know about it.
>>
>>
>> From e02898b423802b1f3a3aaa7f16e896da069ba8f7 Mon Sep 17 00:00:00 2001
>> From: Omar Sandoval <osandov@fb.com>
>> Date: Wed, 1 Mar 2017 10:42:38 -0800
>> Subject: loop: fix LO_FLAGS_PARTSCAN hang
>>
>> From: Omar Sandoval <osandov@fb.com>
>>
>> commit e02898b423802b1f3a3aaa7f16e896da069ba8f7 upstream.
>>
>> loop_reread_partitions() needs to do I/O, but we just froze the queue,
>> so we end up waiting forever. This can easily be reproduced with losetup
>> -P. Fix it by moving the reread to after we unfreeze the queue.
>>
>> Fixes: ecdd09597a57 ("block/loop: fix race between I/O and set_status")
>> Reported-by: Tejun Heo <tj@kernel.org>
>> Signed-off-by: Omar Sandoval <osandov@fb.com>
>> Reviewed-by: Ming Lei <tom.leiming@gmail.com>
>> Signed-off-by: Jens Axboe <axboe@fb.com>
>> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>
> Why is this being added to a bunch of trees that don't have the commit
> that it fixes? It should not go into any of these.
>
The commit it fixes was marked for stable, which is why I also marked this
one for stable. And it looks like that commit is also queued up for these
stable releases:
http://git.kernel.org/cgit/linux/kernel/git/stable/stable-queue.git/tree/queue-4.10/block-loop-fix-race-between-i-o-and-set_status.patch
http://git.kernel.org/cgit/linux/kernel/git/stable/stable-queue.git/tree/queue-4.9/block-loop-fix-race-between-i-o-and-set_status.patch
http://git.kernel.org/cgit/linux/kernel/git/stable/stable-queue.git/tree/queue-4.4/block-loop-fix-race-between-i-o-and-set_status.patch
So it should be okay.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Patch "loop: fix LO_FLAGS_PARTSCAN hang" has been added to the 4.10-stable tree
2017-03-08 15:52 ` Omar Sandoval
@ 2017-03-08 15:55 ` Jens Axboe
0 siblings, 0 replies; 6+ messages in thread
From: Jens Axboe @ 2017-03-08 15:55 UTC (permalink / raw)
To: Omar Sandoval, gregkh, tj, tom.leiming; +Cc: stable, stable-commits
On 03/08/2017 08:52 AM, Omar Sandoval wrote:
> On 03/08/2017 07:47 AM, Jens Axboe wrote:
>> On 03/08/2017 08:39 AM, gregkh@linuxfoundation.org wrote:
>>>
>>> This is a note to let you know that I've just added the patch titled
>>>
>>> loop: fix LO_FLAGS_PARTSCAN hang
>>>
>>> to the 4.10-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-fix-lo_flags_partscan-hang.patch
>>> and it can be found in the queue-4.10 subdirectory.
>>>
>>> If you, or anyone else, feels it should not be added to the stable tree,
>>> please let <stable@vger.kernel.org> know about it.
>>>
>>>
>>> From e02898b423802b1f3a3aaa7f16e896da069ba8f7 Mon Sep 17 00:00:00 2001
>>> From: Omar Sandoval <osandov@fb.com>
>>> Date: Wed, 1 Mar 2017 10:42:38 -0800
>>> Subject: loop: fix LO_FLAGS_PARTSCAN hang
>>>
>>> From: Omar Sandoval <osandov@fb.com>
>>>
>>> commit e02898b423802b1f3a3aaa7f16e896da069ba8f7 upstream.
>>>
>>> loop_reread_partitions() needs to do I/O, but we just froze the queue,
>>> so we end up waiting forever. This can easily be reproduced with losetup
>>> -P. Fix it by moving the reread to after we unfreeze the queue.
>>>
>>> Fixes: ecdd09597a57 ("block/loop: fix race between I/O and set_status")
>>> Reported-by: Tejun Heo <tj@kernel.org>
>>> Signed-off-by: Omar Sandoval <osandov@fb.com>
>>> Reviewed-by: Ming Lei <tom.leiming@gmail.com>
>>> Signed-off-by: Jens Axboe <axboe@fb.com>
>>> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>>
>> Why is this being added to a bunch of trees that don't have the commit
>> that it fixes? It should not go into any of these.
>>
>
> The commit it fixes was marked for stable, which is why I also marked this
> one for stable. And it looks like that commit is also queued up for these
> stable releases:
>
> http://git.kernel.org/cgit/linux/kernel/git/stable/stable-queue.git/tree/queue-4.10/block-loop-fix-race-between-i-o-and-set_status.patch
> http://git.kernel.org/cgit/linux/kernel/git/stable/stable-queue.git/tree/queue-4.9/block-loop-fix-race-between-i-o-and-set_status.patch
> http://git.kernel.org/cgit/linux/kernel/git/stable/stable-queue.git/tree/queue-4.4/block-loop-fix-race-between-i-o-and-set_status.patch
>
> So it should be okay.
Ah yes, that makes sense, I missed that.
--
Jens Axboe
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Patch "loop: fix LO_FLAGS_PARTSCAN hang" has been added to the 4.10-stable tree
2017-03-08 15:47 ` Jens Axboe
2017-03-08 15:52 ` Omar Sandoval
@ 2017-03-08 15:55 ` Greg KH
2017-03-08 15:58 ` Jens Axboe
1 sibling, 1 reply; 6+ messages in thread
From: Greg KH @ 2017-03-08 15:55 UTC (permalink / raw)
To: Jens Axboe; +Cc: osandov, tj, tom.leiming, stable, stable-commits
On Wed, Mar 08, 2017 at 08:47:39AM -0700, Jens Axboe wrote:
> On 03/08/2017 08:39 AM, gregkh@linuxfoundation.org wrote:
> >
> > This is a note to let you know that I've just added the patch titled
> >
> > loop: fix LO_FLAGS_PARTSCAN hang
> >
> > to the 4.10-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-fix-lo_flags_partscan-hang.patch
> > and it can be found in the queue-4.10 subdirectory.
> >
> > If you, or anyone else, feels it should not be added to the stable tree,
> > please let <stable@vger.kernel.org> know about it.
> >
> >
> > From e02898b423802b1f3a3aaa7f16e896da069ba8f7 Mon Sep 17 00:00:00 2001
> > From: Omar Sandoval <osandov@fb.com>
> > Date: Wed, 1 Mar 2017 10:42:38 -0800
> > Subject: loop: fix LO_FLAGS_PARTSCAN hang
> >
> > From: Omar Sandoval <osandov@fb.com>
> >
> > commit e02898b423802b1f3a3aaa7f16e896da069ba8f7 upstream.
> >
> > loop_reread_partitions() needs to do I/O, but we just froze the queue,
> > so we end up waiting forever. This can easily be reproduced with losetup
> > -P. Fix it by moving the reread to after we unfreeze the queue.
> >
> > Fixes: ecdd09597a57 ("block/loop: fix race between I/O and set_status")
> > Reported-by: Tejun Heo <tj@kernel.org>
> > Signed-off-by: Omar Sandoval <osandov@fb.com>
> > Reviewed-by: Ming Lei <tom.leiming@gmail.com>
> > Signed-off-by: Jens Axboe <axboe@fb.com>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>
> Why is this being added to a bunch of trees that don't have the commit
> that it fixes? It should not go into any of these.
Because the commit this fixes just got added to all of those trees. Is
that not the correct thing needed here?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Patch "loop: fix LO_FLAGS_PARTSCAN hang" has been added to the 4.10-stable tree
2017-03-08 15:55 ` Greg KH
@ 2017-03-08 15:58 ` Jens Axboe
0 siblings, 0 replies; 6+ messages in thread
From: Jens Axboe @ 2017-03-08 15:58 UTC (permalink / raw)
To: Greg KH; +Cc: osandov, tj, tom.leiming, stable, stable-commits
On 03/08/2017 08:55 AM, Greg KH wrote:
> On Wed, Mar 08, 2017 at 08:47:39AM -0700, Jens Axboe wrote:
>> On 03/08/2017 08:39 AM, gregkh@linuxfoundation.org wrote:
>>>
>>> This is a note to let you know that I've just added the patch titled
>>>
>>> loop: fix LO_FLAGS_PARTSCAN hang
>>>
>>> to the 4.10-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-fix-lo_flags_partscan-hang.patch
>>> and it can be found in the queue-4.10 subdirectory.
>>>
>>> If you, or anyone else, feels it should not be added to the stable tree,
>>> please let <stable@vger.kernel.org> know about it.
>>>
>>>
>>> From e02898b423802b1f3a3aaa7f16e896da069ba8f7 Mon Sep 17 00:00:00 2001
>>> From: Omar Sandoval <osandov@fb.com>
>>> Date: Wed, 1 Mar 2017 10:42:38 -0800
>>> Subject: loop: fix LO_FLAGS_PARTSCAN hang
>>>
>>> From: Omar Sandoval <osandov@fb.com>
>>>
>>> commit e02898b423802b1f3a3aaa7f16e896da069ba8f7 upstream.
>>>
>>> loop_reread_partitions() needs to do I/O, but we just froze the queue,
>>> so we end up waiting forever. This can easily be reproduced with losetup
>>> -P. Fix it by moving the reread to after we unfreeze the queue.
>>>
>>> Fixes: ecdd09597a57 ("block/loop: fix race between I/O and set_status")
>>> Reported-by: Tejun Heo <tj@kernel.org>
>>> Signed-off-by: Omar Sandoval <osandov@fb.com>
>>> Reviewed-by: Ming Lei <tom.leiming@gmail.com>
>>> Signed-off-by: Jens Axboe <axboe@fb.com>
>>> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>>
>> Why is this being added to a bunch of trees that don't have the commit
>> that it fixes? It should not go into any of these.
>
> Because the commit this fixes just got added to all of those trees. Is
> that not the correct thing needed here?
It is, I forgot/missed that the original commit was marked for stable,
which should of course pull this one in as well.
--
Jens Axboe
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-03-08 16:15 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-08 15:39 Patch "loop: fix LO_FLAGS_PARTSCAN hang" has been added to the 4.10-stable tree gregkh
2017-03-08 15:47 ` Jens Axboe
2017-03-08 15:52 ` Omar Sandoval
2017-03-08 15:55 ` Jens Axboe
2017-03-08 15:55 ` Greg KH
2017-03-08 15:58 ` Jens Axboe
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.