Hi, On 9/11/20 4:50 am, Samuel Thibault wrote: > But you can as well replace these two calls with a single tall to > rump_sys_pread() that avoids such issue (ditto for write).
http://git.zammit.org/hurd-sv.git/log/ Even with the new pread/pwrite calls, it still seems to mix up the reads/writes between the ext2fs and tune2fs clients. (using branch above). Using branch above but if I comment out the following line : diff --git a/rumpdisk/block-rump.c b/rumpdisk/block-rump.c index befe0dbb..be6e38d9 100644 --- a/rumpdisk/block-rump.c +++ b/rumpdisk/block-rump.c @@ -205,8 +205,6 @@ device_open (mach_port_t reply_port, mach_msg_type_name_t reply_port_type, mach_print(dev_name); mach_print("\n"); - /* Find previous device or open if new */ - bd = search_bd (dev_name); if (!bd) { err = machdev_create_device_port (sizeof (*bd), &bd); so it always opens new regardless of device, dir_lookup("dev/wd0s3") returns no such device. ?2004hroot@zamhurd:~# showtrans /dev/wd0s3 /hurd/storeio -T typed part:3:device:@/dev/rumpdisk:/dev/wd0 ?2004hroot@zamhurd:~# tune2fs -l /dev/wd0s3 tune2fs 1.45.5 (07-Jan-2020) RUMP: OPEN: /dev/wd0d RUMP: OPEN: /dev/wd0d tune2fs: No such device or address while trying to open /dev/wd0s3 Couldn't find valid filesystem superblock. root@zamhurd:~# rpctrace output: --- 27<--73(pid619)->dir_lookup ("dev/wd0s3" 1 0)RUMP: OPEN: /dev/wd0d RUMP: OPEN: /dev/wd0d = 0x40000006 (No such device or address) --- Do we need multithreaded device_read / device_write as well as pread/pwrite? Damien