We tried to resize a 15TB ext4 partition to 16TB and accidentally managed to hit an old (and fixed in newer releases) off-by-one bug of ext4_resize_fs() which causes inode count to reset to 0 thanks to an overflow bug.

The fix can be seen here: https://github.com/torvalds/linux/commit/4f2f76f751433908364ccff82f437a57d0e6e9b7

As a result, our 16TB partition is unusable at the moment.

Are there any ways to recover from the situation? Even a read-only access to all files is more than enough in this case.


Probably the best way to handle this is to use debugfs ssv command to edit the superblock to reduce the block count and inode count by one group's worth of items, then run e2fsck. That essentially undo the last part of the resize, allowing you to use the filesystem again.

Your Answer

