doc: add cephfs ENOSPC and eviction information

Adding this at this time to give us a sensible place
to talk about the epoch barrier stuff.  The eviction
stuff will probably get simplified once we add a mon-side
eviction command that handles blacklisting and MDS session
eviction in one go.

Signed-off-by: John Spray <john.spray@redhat.com>
osdc: implement Objecter::set_epoch_barrier

For use in MDS and Client when they want to wait
for a particular OSDMap epoch before using caps
that depend on a prior blacklist or op cancellation.

Signed-off-by: John Spray <john.spray@redhat.com>
osdc: remove spurious _maybe_request_map return value

This was always zero: make the function return void, and
remove all the places we asserted on its return value.

Signed-off-by: John Spray <john.spray@redhat.com>
fixup: mds: use objecter epoch barrier instead of holding up cap messages

... so that we don't break the ordering on mds session messages.

Squash into: "mds: implement osd epoch barrier on caps"
fixup: client: use objecter epoch barrier

squash into: "client: track osd epoch barrier"

Signed-off-by: John Spray <john.spray@redhat.com>
client: propagate flush errors to fclose/fsync

Ensure that all calls to _flush get an explicit
context (rather than implicit PutInode used
before), which tags any error onto the Inode object.

Later, read the error from the Inode object in _release_fh
and ensure all callers of _release_fh properly handle
its return code.

Signed-off-by: John Spray <john.spray@redhat.com>
fixup client: purge objectset before putting inode

Strictly doing a put_inode before the purge is problematic
because the inode destructor requires the objectset to
be empty.
fixup: purge_set on dirty inodes when hitting full flag and set async_err

previously objectcacher would retry the flush and end up with paused
ops in objecter.

Squash into: client: cancel all ops on full flag
fixup: reliably pass async_err up in ll_fsync

previously only saw it here if the explicit flush was
happening
fixup: implement ll_flush to handle fclose errors

fuse seems to ignore errors I return from close, and
the documentation suggests that ll_flush should be used
to flag errors flushing data.

Signed-off-by: John Spray <john.spray@redhat.com>