e2undo: cast dptr to blk64_t to retrieve block number
PATCH 1/1 e2undo: cast dptr to blk64_t to retrieve block number
A 32-bit s390 build was failing on a 64-bit s390x host, when make check failed e2undo tests, like this:
md5sum before mke2fs 922c8a591c882dbdd1a381d18547cfd5
using mke2fs to test e2undo
Overwriting existing filesystem; this can be undone using the command:
e2undo /tmp/mke2fs-tmp.EM9XjmTA81.e2undo /tmp/tmp.EM9XjmTA81
md5sum after mke2fs cbf32fb6c3db45280ad013f42ac294f1 Replayed transaction of size 32768 at location 0 Replayed transaction of size 32768 at location 0 Replayed transaction of size 32768 at location 0 Replayed transaction of size 32768 at location 0 Replayed transaction of size 0 at location 0 md5sum after e2undo 31b4e14307c5b7ccce5b8d300c2ad5f1
Note the "at location 0" for the block number.
A proper cast in e2undo.c fixes this up.
---
We should have a bingo game for the rest of the unsigned longs that are surely lurking around ;)
misc/e2undo.c +1 -1
@@ -206,7 +206,7 @@ int main(int argc, char *argv[]) _("Failed tdb_fetch %s\n"), tdb_errorstr(tdb));exit (1 ); } - blk_num = *(unsigned long *)key.dptr; + blk_num = *(blk64_t *)key.dptr;printf (_ ("Replayed transaction of size %zd at location %llu\n" ), data.dsize, blk_num); retval = io_channel_write_blk64(channel, blk_num,
Ted Ts'o
AppliedQuoted 16 lines · Eric Sandeen
A 32-bit s390 build was failing on a 64-bit s390x host, when make check failed e2undo tests, like this:
md5sum before mke2fs
922c8a591c882dbdd1a381d18547cfd5
using mke2fs to test e2undo
Overwriting existing filesystem; this can be undone using the command:e2undo /tmp/mke2fs-tmp.EM9XjmTA81.e2undo /tmp/tmp.EM9XjmTA81md5sum after mke2fs
cbf32fb6c3db45280ad013f42ac294f1Replayed transaction of size 32768 at location 0 Replayed transaction of size 32768 at location 0 Replayed transaction of size 32768 at location 0 Replayed transaction of size 32768 at location 0 Replayed transaction of size 0 at location 0 md5sum after e2undo31b4e14307c5b7ccce5b8d300c2ad5f1
Quoted 5 lines
Note the "at location 0" for the block number.
A proper cast in
e2undo.cfixes this up.Signed-off-by Eric Sandeen <[email protected]>
Thanks, applied.
- Ted