In case this information is helpful to anyone, here is
the current status of three different variants of it.
1. bio_max_iovecs() version - This just replaced BIO_MAX_SECTORS.
It was simple. It worked, but everyone got more ambitious about making
more sweeping changes. Jens wanted a boolean one_more_bvec(bio, bvec)
interface. I made a void bio_append(bio, bvec) interface that would submit
bio that could not hold another bvec and always succeed. I beleve that
the bio_max_iovecs should have gone in while we worked on other changes
and I still believe that they should go in in the meantime. People's
systems are crashing while we argue about more ambitious solutions.
I do not have a patch against 2.5.30 handy, but I would be happy to
generate a patch for this again if there is interest in getting it
into Linus's tree while we await future changes that might replace
this code.
2. bio_append + mpage.c changes - This changed mpage.c to be
able to handle all IO requests that are thrown at it (i.e., it never
punts to fs/buffer.c) . However, since 2.5.27(?) it corrupts the
disk on an ext2 file system with a 1024-byte block size (I have only
tried it on ext2 file systems and with block sizes of 1024 or 4096 bytes).
3. bio_append + mpage.c changes + fs/buffer.c shrink - Same as
above, but had fs/mpage.c routines replace the fs/buffer.c routines
entirely, deleting a bunch of buffer_head oriented code from fs/buffer.c.
These changes corrupt the disk when the device is opened with a block
size of 1024 (as opposed ot 4096). This is probably related to the
bug described in the previous paragraph.
#2 and #3 are closely related. Perhaps I will stare at
the code for #2 some more and try to find that @#$Q@#$ bug.
Adam J. Richter __ ______________ 575 Oroville Road
adam@yggdrasil.com \ / Milpitas, California 95035
+1 408 309-6081 | g g d r a s i l United States of America
"Free Software For The Rest Of Us."
`e
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/