-
Shachar Sharon authored
A new VFS-module which uses libcephfs' low-level APIs (instead of the higher-level APIs used by current vfs_ceph.c module) to communicate with an existing cephfs cluster. Using the low-level APIs allows more fine-grained functionality: - Explicit user-credentials (libcephfs' UserPerms) per call. - Faster operation via (cached) inode or file-handle. - Improved resource consumption on libcephfs internal Client. - Asynchronous I/O (ceph_ll_nonblocking_readv_writev, not impl yet). The code uses iget/iput pattern: resolve ("iget") a reference to Ceph's Inode by inode-number (fast) or path-resolving (slow) at the beginning of operation, execute a specific call using this Inode, and release it at the end ("iput"). When calling specific low-level APIs, create an appropriate Ceph UserPerm object on-the-fly based on current unix_token credentials (uid, gid and supplementary groups). For I/O operation use fsp-extension mechanism to keep the returned file-handle reference (Ceph's Fh*) associated with the relevant files_struct. Signed-off-by:
Shachar Sharon <ssharon@redhat.com>
914c2d5d