Am 26.09.2009 um 09:21 schrieb Doug Rabson: > On 25 Sep 2009, at 22:49, Artem Belevich wrote: > >> Our bootloader implementation does not know how to read gang blocks. >> Compare the code from OpenSolaris' variant of grub with what we have >> and find the differences: >> >> Search for zio_read_data here: >> http://bitbucket.org/osunix/osunix-gate/src/1cca4617b3a8/usr/src/grub/grub-0.97/stage2/fsys_zfs.c >> >> And compare with our zio_read here: >> http://fxr.watson.org/fxr/source/boot/zfs/zfsimpl.c?im=excerpts#L900 >> >> We seem to be missing gang block check. That would explain why >> zfsboot >> works only sometimes. If all the files are written using regular >> blocks, then we're OK. However, some time later (i.e. during upgrade >> or after an edit), some data can end up written to disk in a gang >> block and that would make zfsboot choke. > > This sounds plausible - I never managed to see a gang block while I > was working on this. I'm afraid something else is wrong. I added if (DVA_GET_GANG(dva)) to zio_read, with a printf and return(EIO). Booting results in "no block copies available", but my code addition does not seem to be triggered. This is with a freshly created zpool, set up with make installworld. Stefan -- Stefan Bethke <stb_at_lassitu.de> Fon +49 151 14070811Received on Sat Sep 26 2009 - 09:49:34 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:56 UTC