strata
strata copied to clipboard
various bugfix without pr
should use function parameter instead of file descriptor's offset field please see this commit
and more bugs, just paste patches here since maybe no one really look at this issue. log invalidation bug related to log_version incomplete log block bug log invalidation bug related to digesting and RO/RW log libfs outdated extents block buffer bug (ugly workaround, correctness first as time limiting) kernfs dirty buffer writeback and refcount bug directory block out of range access potential deadloop with compiler optimization, since shared variable accessed without protection
ftruncate bug due to bad end block calculation. Can be tested in libfs/tests/ftrunc_test. Notably, the old way had a bug if the file size was less than 4k and a truncate to 0 was specified. This fixes that
root inode->i_sb not initialized inode->fcache_hash used after free x86_64 calling convention of syscall are different from function call (workaround) sigaction put struct on callee's stack
Should persist log data before updating fcache_block metadata Should atomically update log version related variable The time really read from app log isn't the same as checking if log is valid, maintain a safe distance to prevent concurrency bugs Didn't add each kernfs dirty buffer to writeback list, previous fix "kernfs dirty buffer writeback and refcount bug" was incomplete