Avoid abort() in vn_rdwr(): libzpool/kernel.c
authorMike Leddy <mike.leddy@gmail.com>
Thu, 4 Jul 2013 04:02:05 +0000 (01:02 -0300)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 9 Jul 2013 18:56:43 +0000 (11:56 -0700)
Make sure that buffer is aligned to 512 bytes on linux so that
pread call combined with O_DIRECT does not return EINVAL.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1570

cmd/zdb/zdb.c

index 936974b..a2b6bfe 100644 (file)
@@ -2844,7 +2844,7 @@ zdb_read_block(char *thing, spa_t *spa)
        psize = size;
        lsize = size;
 
-       pbuf = umem_alloc(SPA_MAXBLOCKSIZE, UMEM_NOFAIL);
+       pbuf = umem_alloc_aligned(SPA_MAXBLOCKSIZE, 512, UMEM_NOFAIL);
        lbuf = umem_alloc(SPA_MAXBLOCKSIZE, UMEM_NOFAIL);
 
        BP_ZERO(bp);