XaiJu
bcachefs
bcachefs

patreon


Short update

Just finished fixing a whole bunch of i_sectors accounting bugs - the count of how many sectors are in a given inode/file. It turns out our accounting on disk, in the btree was completely fine - fsck would've noticed, if it wasn't - but the in memory accounting is different due to dirty data in the page cache, and that code was completely missing assertions and not much tests it so we never noticed.

Except that quotas do hang off of that accounting, and the quota code did have assertions for "amount of data in a given quota going negative", so that's how we finally noticed.

But now we have new assertions (whenever we truncate a file to 0 size we assert that i_sectors is now also 0), and many fixes later that code all looks to be completely solid.

Gauging by the bug reports and the tests, things are looking as stable and solid as they've ever been. I'm turning my attention to erasure coding right now, going to see if I can get that into usable shape. After that, I'm thinking it might be time to write a user manual.

Comments

I would love to see usable EC.

Wilson Li

Congrats on the bug squash! Excited for EC =)

John Smith


More Creators