diff -urN 2.4.6ac1/fs/buffer.c 2.4.6ac2/fs/buffer.c --- 2.4.6ac1/fs/buffer.c Wed Jul 4 16:07:49 2001 +++ 2.4.6ac2/fs/buffer.c Sat Jul 7 18:04:32 2001 @@ -1536,8 +1536,9 @@ SetPageUptodate(page); /* Stage 3: submit the IO */ do { + struct buffer_head *next = bh->b_this_page; submit_bh(WRITE, bh); - bh = bh->b_this_page; + bh = next; } while (bh != head); /* Done - end_buffer_io_async will unlock */ @@ -2214,8 +2215,9 @@ /* Stage 2: start the IO */ do { + struct buffer_head *next = bh->b_this_page; submit_bh(rw, bh); - bh = bh->b_this_page; + bh = next; } while (bh != head); return 0; }