@Shamar I figured 9P would make a good intermediate protocol. It gives the remote device the option of exposing a raw block I/O end-point, a filesystem end-point, or perhaps both if it wanted.
What I haven't quite figured out yet is how to query for the number of concurrently open file references. I can foresee some external storage devices being implemented with Arduino-class hardware, for example, which has only limited amounts of RAM.
I'm perhaps getting ahead of myself.