Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > 276c4c69ed5efcebe43ee6121194cf59 > files > 2

kernel22-2.2.20-9mdk.src.rpm

diff -urN 2.2.18pre9/fs/buffer.c IO-wait/fs/buffer.c
--- 2.2.18pre9/fs/buffer.c	Tue Sep  5 02:28:47 2000
+++ IO-wait/fs/buffer.c	Sun Sep 17 03:49:10 2000
@@ -143,13 +143,13 @@
 	bh->b_count++;
 	wait.task = tsk;
 	add_wait_queue(&bh->b_wait, &wait);
-repeat:
-	tsk->state = TASK_UNINTERRUPTIBLE;
-	run_task_queue(&tq_disk);
-	if (buffer_locked(bh)) {
+	do {
+		set_current_state(TASK_UNINTERRUPTIBLE);
+		run_task_queue(&tq_disk);
+		if (!buffer_locked(bh))
+			break;
 		schedule();
-		goto repeat;
-	}
+	} while (buffer_locked(bh));
 	tsk->state = TASK_RUNNING;
 	remove_wait_queue(&bh->b_wait, &wait);
 	bh->b_count--;
diff -urN 2.2.18pre9/mm/filemap.c IO-wait/mm/filemap.c
--- 2.2.18pre9/mm/filemap.c	Sun Sep 17 01:20:44 2000
+++ IO-wait/mm/filemap.c	Sun Sep 17 03:49:28 2000
@@ -357,13 +357,13 @@
 
 	wait.task = tsk;
 	add_wait_queue(&page->wait, &wait);
-repeat:
-	tsk->state = TASK_UNINTERRUPTIBLE;
-	sync_page(page);
-	if (PageLocked(page)) {
+	do {
+		set_current_state(TASK_UNINTERRUPTIBLE);
+		sync_page(page);
+		if (!PageLocked(page))
+			break;
 		schedule();
-		goto repeat;
-	}
+	} while (PageLocked(page));
 	tsk->state = TASK_RUNNING;
 	remove_wait_queue(&page->wait, &wait);
 }