BFS Partition Resizer: Midterm Report

Blog post by ahenriksson on Fri, 2012-07-13 16:23

fssh:/> resizefs 100000000000000000
File system information:
        Bitmap:     48175 blocks (was 1)
        Log start:  block 48176 (was 2)
        Log length: 4096 blocks (was 512)
        Block size: 2048 bytes

Error:  Can't grow disk this much.
Status: Invalid argument
fssh:/> resizefs 2048000
File system information:
        Bitmap:     1 blocks (was 1)
        Log start:  block 2 (was 2)
        Log length: 512 blocks (was 512)
        Block size: 2048 bytes

        Inodes moved:       0
        Data streams moved: 0

File system successfully resized!

Perhaps not too user friendly.

I will spend the following weeks testing and fixing bugs. My plan is to use a tiny script to checksum all parts of the filesystem before and after the resize. I will combine this with code coverage testing with gcov, and simply create and try images and resizing sizes. Special care will also need to be taken with the parts that modify the normal operation of the driver.

With this process, I expect to find and exterminate all non-subtle bugs hiding in seldom (or never) executed code. If anyone has any other exciting testing ideas, I'd be happy to hear them.

All in all, things are moving along roughly on schedule. By the end of this period, I'd like to have the kernel part robust and done, so I can move on to adding support to DriveSetup and related tasks.