Date: Thu, 26 Nov 2015 23:50:36 +0000 (UTC) From: mlel...@serpens.de (Michael van Elst) Message-ID: <n385sc$grr$2...@serpens.de>
| You need to copy the sector size from the underlying disk and you | need to fix a few cases where DEV_BSIZE is used for buffer sizes. Yes, did that, that's what led to the panic in the earlier message... I suspect (with no proof at all yet, so this might easily be wrong) that the problem comes from the "disk driver translates" model. For these purposes, cgd is a disk driver, it calls dk_start() and that runs dk_translate() and the units get translated from the original DEV_BSIZE (one presumes) into the cgd "device"'s 4K sector units. Then it calls the underlying device driver (the sd driver via umass in my case) - that also expects to be receiving the data in DEV_BSIZE units, and translates to the drive's 4K sector units. That combination isn't good... I was still in the process of instrumenting things to actually validate (or disprove) this hypothesis when I got distracted by other stuff, and put it all aside (and more or less forgot it for a while.) kre