filetree
Tag 10: the client asks for the tree of the served volume as this FUSE serve sees it; the server sends a snapshot of that tree, the layer of an ephemeral serve included, and one channel response per change the asks of this FUSE serve make, until the scope ends.
The client opens this channel to watch the served volume as this FUSE serve sees it.
- The request. The payload is the tag byte
9and nothing more. Request states its form. - The response. A snapshot, one channel response per change, and the channel response finish when the scope ends. Response states the sequence.
- The tree is the FUSE serve’s view. The snapshot is the volume as this
serve sees it: for a
persistentvolume the volume; for anephemeralvolume the volume under the layer of this FUSE serve, so an entry the layer holds is in the tree as the layer holds it; for aread_onlyvolume the volume. The root of the tree is the root of the volume. - What changes. A change is a mutation this FUSE serve answered
ok: a write, a truncate, a setattr, a mkdir, a removal or a rename on one of this scope’s channels. Nothing else changes what this FUSE serve sees, and nothing else is reported. Aread_onlyvolume answers no mutationok, and its stream is the snapshot and nothing after it. - Every channel is whole. Each filetree channel begins with its own snapshot. Two filetree channels on one scope are two streams, and each reports every change.
- Every directory is watched. Every
Directoryin the snapshot haschanges1: every change beneath it is reported, since every change passes through this FUSE serve. - Ended with the scope. The channel response finish of a filetree channel is sent when the scope ends, after the last change. The client ends a filetree channel by ending the scope, and not otherwise.
- Not a volumes::filetree. A volumes::filetree of a served volume is answered with an error while the FUSE serve holds the volume, and would show the volume without the layer. This channel is the one view of the tree of a served volume.