linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH][CFT] CDRW/DVD packet writing data corruption fix
@ 2005-05-15  9:03 Peter Osterlund
  0 siblings, 0 replies; only message in thread
From: Peter Osterlund @ 2005-05-15  9:03 UTC (permalink / raw)
  To: linux-kernel

I found a bug in the packet writing driver that could cause data
corruption. The problem arised if the driver got a write request for a
sector in a "zone" it was already working on. In that case it was
supposed to queue the write request until it was done processing
earlier requests for the same zone, and instead work on some other
zone in the mean time. However, if there was no other zone to work on,
the driver would initiate two packet_data objects for the same zone,
causing unpredictable things to happen.

I haven't tested this as much as I want yet, so I don't know if there
are more data corruption bugs in the driver. Test reports would be
appreciated.

Signed-off-by: Peter Osterlund <petero2@telia.com>
---

 linux-petero/drivers/block/pktcdvd.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)

diff -puN drivers/block/pktcdvd.c~packet-corruption-fix drivers/block/pktcdvd.c
--- linux/drivers/block/pktcdvd.c~packet-corruption-fix	2005-05-15 10:53:00.000000000 +0200
+++ linux-petero/drivers/block/pktcdvd.c	2005-05-15 10:53:00.000000000 +0200
@@ -926,8 +926,10 @@ static int pkt_handle_queue(struct pktcd
 		bio = node->bio;
 		zone = ZONE(bio->bi_sector, pd);
 		list_for_each_entry(p, &pd->cdrw.pkt_active_list, list) {
-			if (p->sector == zone)
+			if (p->sector == zone) {
+				bio = NULL;
 				goto try_next_bio;
+			}
 		}
 		break;
 try_next_bio:
_

-- 
Peter Osterlund - petero2@telia.com
http://web.telia.com/~u89404340

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-05-15  9:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-15  9:03 [PATCH][CFT] CDRW/DVD packet writing data corruption fix Peter Osterlund

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).