2005-11-18 14:55:58

by Alasdair G Kergon

[permalink] [raw]
Subject: [PATCH] device-mapper snapshot: bio_list fix

bio_list_merge() should do nothing if the second list is empty - not oops.

From: [email protected]
Signed-Off-By: Alasdair G Kergon <[email protected]>

Index: linux-2.6.14/drivers/md/dm-bio-list.h
===================================================================
--- linux-2.6.14.orig/drivers/md/dm-bio-list.h 2005-10-28 01:02:08.000000000 +0100
+++ linux-2.6.14/drivers/md/dm-bio-list.h 2005-11-15 15:59:20.000000000 +0000
@@ -33,6 +33,9 @@ static inline void bio_list_add(struct b

static inline void bio_list_merge(struct bio_list *bl, struct bio_list *bl2)
{
+ if (!bl2->head)
+ return;
+
if (bl->tail)
bl->tail->bi_next = bl2->head;
else


2005-11-18 15:34:54

by Alexander E. Patrakov

[permalink] [raw]
Subject: Re: [PATCH] device-mapper snapshot: bio_list fix

Alasdair G Kergon wrote:
> bio_list_merge() should do nothing if the second list is empty - not oops.
>
> From: [email protected]
> Signed-Off-By: Alasdair G Kergon <[email protected]>
>
> Index: linux-2.6.14/drivers/md/dm-bio-list.h
> ===================================================================
> --- linux-2.6.14.orig/drivers/md/dm-bio-list.h 2005-10-28 01:02:08.000000000 +0100
> +++ linux-2.6.14/drivers/md/dm-bio-list.h 2005-11-15 15:59:20.000000000 +0000
> @@ -33,6 +33,9 @@ static inline void bio_list_add(struct b
>
> static inline void bio_list_merge(struct bio_list *bl, struct bio_list *bl2)
> {
> + if (!bl2->head)
> + return;
> +
> if (bl->tail)
> bl->tail->bi_next = bl2->head;
> else

Could you please tell how to reproduce this oops using e.g. loop
devices? This patch looks relevant to my Live CD (although no oops has
been reported yet).

--
Alexander E. Patrakov

2005-11-18 15:39:56

by Alasdair G Kergon

[permalink] [raw]
Subject: Re: [PATCH] device-mapper snapshot: bio_list fix

On Fri, Nov 18, 2005 at 08:32:59PM +0500, Alexander E. Patrakov wrote:
> Could you please tell how to reproduce this oops

Try creating/removing multiple snapshots of the same device while
I/O is going on.

Alasdair
--
[email protected]

2005-11-18 16:56:55

by jblunck

[permalink] [raw]
Subject: Re: [PATCH] device-mapper snapshot: bio_list fix

On Fri, Nov 18, Alexander E. Patrakov wrote:

> Could you please tell how to reproduce this oops using e.g. loop
> devices? This patch looks relevant to my Live CD (although no oops has
> been reported yet).
>

Its not an oops but hanging on I/O to finish.

Regards,
Jan

--
Jan Blunck [email protected]
SuSE LINUX AG - A Novell company
Maxfeldstr. 5 +49-911-74053-608
D-90409 N?rnberg http://www.suse.de