[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [patch]Fix block device read for some SLOW file
From: |
lepton |
Subject: |
[Qemu-devel] [patch]Fix block device read for some SLOW file |
Date: |
Wed, 27 Jul 2005 19:10:57 +0800 |
User-agent: |
Mutt/1.5.9i |
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,
- [Qemu-devel] [patch]Fix block device read for some SLOW file,
lepton <=