mds/Server: whitespace

Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
osdc/Objecter: whitespace

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client: whitespace

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client: add barrier and types

This gives us a framework to implement commit operations that are
guaranteed to terminate even if unstable writes come in after commit
is called.

Adapted to use Boost interval classes by Adam Emerson
<aemerson@linuxbox.com>.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client/Client: return 1 from readdir cb on full

This appears to save us a bit of extra work trying to fill up the buffer
further than it can be filled.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client/Client: make open fhp argument optional

This is more natural for both FUSE and Ganesha.

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client: switch ll_* methods to Inode* arguments

This commit implements a set of API changes proposed by
"David Zafman" <david.zafman@inktank.com>.

The principle change is consistently use Ceph Inode pointers as
context for inode operations, in place of materialized snapid,
inode# (vinodeno_t) tuples.

This provides a strictly handle-based interface to users.  They can either
do lookups themselves, or call a lookup method to get an Inode* from a
vinodeno_t.

(Build fixed in later commits, e.g., SyntheticClient.cc.)

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client: expose layout information

This allows us to construct pNFS layouts and DS filehandles that
match the Ceph clustering, placement, and striping structure.

(Includes pieces of API v2 by Matt.)

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/client/Client.cc

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client: direct read/write methods that bypass cache, cap checks

These methods were created to implement pNFS data server support,
bypassing cap checks since the pNFS MDS holds a cap on behalf of
the client, realized in the recallable layout.

(Includes pieces of API v2 by Matt.)

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client/SyntheticClient: adapt to new ll_* interface

(Includes pieces of NFS interface widening by Adam.)

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
client/fuse_ll: adapt to new ll_ interface

This adapts the FUSE client to David Zafman's proposed interface
changes.

(Includes pieces of NFS interface widening by Adam.)

Signed-off-by: Matt Benjamin <matt@linuxbox.com>

Conflicts:
	src/client/fuse_ll.cc

Signed-off-by: Matt Benjamin <matt@linuxbox.com>
libcephfs: expose new client ll_ interface

This patch exposes all changes made for interfacing with Ganesha
and layout support and David Zafman's proposed modifications to
the low-level API.

Signed-off-by: Adam Emerson <aemerson@linuxbox.com>
Signed-off-by: Matt Benjamin <matt@linuxbox.com>
Merge remote-tracking branch 'linuxbox/aemerson-rebase' into wip-libcephfs