Zach Brown e3b308c0d0 scoutfs: add transactions and metadata writing
Add the transaction machinery that writes out dirty metadata blocks as
atomic transactions.

The block radix tracks dirty blocks with a dirty radix tag.

Blocks are written with bios whose completion marks them clean and
propogates errors through the super info.  The blocks are left tagged
during writeout so that they won't be (someday) mistaken for clean by
eviction.  Since we're modifying the radix from io completion we change
all block lock acquisitions to be interrupt safe.

All the operations that modify blocks hold and release the transaction
while they're doing their work.

sync kicks off work that waits for the transaction to be released so
that it can write out all the dirty blocks and then the new supers that
reference them.

Signed-off-by: Zach Brown <zab@versity.com>
2016-04-14 14:35:32 -07:00
Description
No description provided
6.7 MiB
Languages
C 87.2%
Shell 9.1%
Roff 2.5%
TeX 0.9%
Makefile 0.3%