]> git.neil.brown.name Git - LaFS.git/commit
Simplify iolocking in get_flushable
authorNeilBrown <neilb@suse.de>
Sat, 15 Aug 2009 07:09:20 +0000 (17:09 +1000)
committerNeilBrown <neilb@suse.de>
Sat, 15 Aug 2009 07:09:20 +0000 (17:09 +1000)
commit0f3f31c3315629e75ec05ff693894a49ed0576cf
tree427df4d0fb906284294a727222aaba76f14b5a46
parent9f1b849e896a33dfa6547e3a72e678eeeb0c615d
Simplify iolocking in get_flushable

The difference between data and index block is not really supportable,
and we cannot just avoid waiting for some blocks.

But we cannot always for a full iowait as block that have been
allocated to a cluster do not complete until the cluster is written
and we don't want to wait for a cluster to be written, especially as
we there thread that is supposed to do that.

So create an intermediate iowait which wait for iolock to be dropped
or the block to be placed on a list.  Once it is on a list we can be
sure not to lose it.

So we wait while incorporation or truncation happens, but not while
writeout happens.
checkpoint.c
cluster.c
index.c
io.c
lafs.h