Skip to content
  • Shachar Sharon's avatar
    vfs_ceph2: new VFS-module using libcephfs' low-level APIs · 914c2d5d
    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: default avatarShachar Sharon <ssharon@redhat.com>
    914c2d5d