]> git.neil.brown.name Git - LaFS.git/commit
Support fully async iget
authorNeilBrown <neilb@suse.de>
Fri, 9 Jul 2010 03:37:38 +0000 (13:37 +1000)
committerNeilBrown <neilb@suse.de>
Fri, 9 Jul 2010 04:36:56 +0000 (14:36 +1000)
commit81d38963fcfc32f2202b8b3a6bf4a37a90165f46
tree22f1421d6b5c039c4936306992c6b62480a75ae6
parentd353e95b645ace701e30a5b8a84321f95a787842
Support fully async iget

iget can block if the inode is being initialised or freed
by a different thread.  It is not acceptable for the cleaner
to block in these cases as the other thread my need to trigger
a checkpoint.

So use special match/set functions to ensure we never
block, and use B_Async to check if we need to wake the
cleaner when done with an inode.

Signed-off-by: NeilBrown <neilb@suse.de>
inode.c
super.c