All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [patch]Fix block device read for some SLOW file
@ 2005-07-27 11:10 lepton
  2005-07-27 12:55 ` Johannes Schindelin
  2005-07-27 13:18 ` [Qemu-devel] " Jani Monoses
  0 siblings, 2 replies; 3+ messages in thread
From: lepton @ 2005-07-27 11:10 UTC (permalink / raw)
  To: qemu-devel

Hi, I found when I am using qemu, I can't boot from emulated cdrom.
After some debug, I found the reason is that my iso file is in a samba
file system. When qemu read data from my samba file system. read will be
interrupted by signal alarm. So qemu won't boot from it.

The follwing patch will fix it.

--- qemu-0.7.1/block.c	2005-07-25 02:52:08.000000000 +0800
+++ qemu-0.7.1-lepton/block.c	2005-07-27 18:57:21.000000000 +0800
@@ -591,10 +591,16 @@ static int raw_read(BlockDriverState *bs
     int ret;
     
     lseek(s->fd, sector_num * 512, SEEK_SET);
-    ret = read(s->fd, buf, nb_sectors * 512);
-    if (ret != nb_sectors * 512) 
-        return -1;
-    return 0;
+    while(1){
+  	ret = read(s->fd, buf, nb_sectors * 512);
+	if (ret != nb_sectors * 512) {
+		if(ret==-1 && errno==EINTR)
+			continue;
+	    	else
+        		return -1;
+	}
+	return 0;
+    }
 }
 
 static int raw_write(BlockDriverState *bs, int64_t sector_num, 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-07-27 13:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-27 11:10 [Qemu-devel] [patch]Fix block device read for some SLOW file lepton
2005-07-27 12:55 ` Johannes Schindelin
2005-07-27 13:18 ` [Qemu-devel] " Jani Monoses

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.