From: blaisorblade_spam@yahoo.it Currently, ubd=sync is different from replacing ubd#= with ubd#s=. This is against Principle of Least Surprise, so remove this difference. Also the current ubd=sync behaviour is completely useless: it is to make sure that when the kernel has synched its I/O to the virtual disk, the host does not invalidate this with his caching; this causes ReiserFS corruption. But since actually we call end_request() only after the io_thread has done its work, we never lie to the block layer. Using O_SYNC as we do when replacing ubd#= with ubd#s= is enough. Also merged uml-ubd-thread-start-fail-well: Correct the failure path in start_io_thread(), to return the correct error code. Signed-off-by: Paolo 'Blaisorblade' Giarrusso --- um-linux-2.4.27-paolo/arch/um/drivers/ubd_kern.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff -puN arch/um/drivers/ubd_kern.c~ubd-use-io-thread-always arch/um/drivers/ubd_kern.c --- um-linux-2.4.27/arch/um/drivers/ubd_kern.c~ubd-use-io-thread-always 2005-04-15 11:13:09.000000000 +0200 +++ um-linux-2.4.27-paolo/arch/um/drivers/ubd_kern.c 2005-04-15 11:13:09.000000000 +0200 @@ -708,18 +708,20 @@ int ubd_init(void) for(i=0;i