Actions
Feature #495
closedmds: add MIX_STALE
% Done:
100%
Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Component(FS):
Labels (FS):
Pull request ID:
Description
inode auth dirfrag auth auth (inode replica) v1 0 (v1 10)/(v1 0) (dirty) MIX ...gather... SYNC or LOCK sum v2 10 ...scatter... if !frozen, journal dirfrag, set accounted_fragstat = fragstat, and version (v2 10)/(v2 10) MIX MIX_STALE (v1 10)/(v1 10) ...gather... crash...replay rejoin needs to put us in MIX_STALE if our fragstat versions are older than the inode's ...gather... sum r -> a REQNUDGE a -> * * -> a a -> j j -> a a -> * SYNC r -> j (async) r -> a REQSCATTER a -> * AC_MIX stop reading * -> a MIX_ACK a -> * AC_MIX2 ok now you can write r -> a REQTEMPSYNC a -> * * -> a a -> j j -> a auth now TSYN a -> * AC_MIX ok now you can write r -> j (async) r drain all requests and locks r unwind a r1 r2 a -> r1,r2 SYNC r1 is pinned,doesn't reply r2 -> a SYNC_ACK without tree (not auth yet) r1 sends frozen subtree to r2 unfreeze unscatter_pin r1 -> a (not including tree, not auth anymore) a finishes gather, updates inode.
Actions