# HG changeset patch # User Pascal Bellard # Date 1429974771 -7200 # Node ID e63efbc6b3e3a0f699ba6ce89219f13bd5f79a2c # Parent f30d62ef10817226d18275c6637d5f9b4ff2755c fusecloop: block devices are ... block aligned (512 bytes) diff -r f30d62ef1081 -r e63efbc6b3e3 fusecloop/stuff/fusecloop.u --- a/fusecloop/stuff/fusecloop.u Sat Apr 25 12:57:51 2015 +0200 +++ b/fusecloop/stuff/fusecloop.u Sat Apr 25 17:12:51 2015 +0200 @@ -209,7 +209,7 @@ + table_size = ntohl(tail.table_size); + table = malloc(table_size); + len = i = num_blocks * (ntohl(tail.index_size) & 255); -+ lastlen = ntohl(tail.index_size) / 256; ++ lastlen = ntohl(tail.index_size) & ~0x1FF; + offsets = malloc(num_blocks * sizeof(*offsets)); + if (!table || !offsets || + read(handle, table, table_size) != table_size || @@ -344,7 +344,7 @@ --- create_compressed_fs.c +++ create_compressed_fs.c -@@ -0,0 +1,149 @@ +@@ -0,0 +1,148 @@ +#ifdef FIND_BEST_COMPRESSION +#include +extern "C" { @@ -474,8 +474,7 @@ + } + index[n] = ntohl(len); + } -+ if (block_size >= 0x1000000) lastlen = 0; -+ tail.index_size = ntohl(sizeof(*index) + 256*(lastlen % 0xFFffFF)); ++ tail.index_size = ntohl(sizeof(*index) + (lastlen & ~0x1FF)); + tail.num_blocks = ntohl(n); + n *= sizeof(*index); + len = n + n/1000 + 12;