Hi, I am using bios (no buffer_heads) for a filesystem which tries to job of the block system layer as well. The filesystem, just takes the sector number and allocates a multipage bio for the I/O.. of the order 128 vectors or 2MB of 16K pages (I am using an IA64 machine). the idea is to perform clustered I/O and avoid buffer_heads. The test program performs write()s and read()s one after the other in an endless cycle. If write()s are immediately followed by a read(), the read does not reflect the data which was written. This does not happen always, but sometimes. If I put in a delay between writes and reads, it seems to work fine. This does not reflect with one or two processes, but with multiple processes it results in hte problem, and probability increases with the number of processes. I have tried WRITE_BARRIER but it does not work, returning -EOPNOTSUPP. The end_bio function does not return any error either. I tried different elevator algorithms as well, but to no success. Any pointers..? Kernel: SLES9 - 2.6.5-7.241-default Arch: ia64x4 Thanks, -- Goldwyn -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/