]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
ceph: capability management
authorSage Weil <sage@newdream.net>
Wed, 15 Jul 2009 21:10:59 +0000 (14:10 -0700)
committerSage Weil <sage@newdream.net>
Wed, 15 Jul 2009 21:10:59 +0000 (14:10 -0700)
commiteeae46743fc9487e54a033cb2cf85b9a69a44d87
tree09db273460c015ffcb7fc7b0a6f6261fb1f0d8c3
parent2b4ec8838a6599e98525dbdfd72a1e07cefc81bb
ceph: capability management

The Ceph metadata servers control client access to data by issuing
capabilities granting clients permission to read and/or write to OSDs
(storage nodes).  Each capability consists of a set of bits indicating
which operations are allowed.

In the case of an EXCL (exclusive) or WR capabilities, the client is
allowed to change inode attributes (e.g., file size, mtime), noting
its dirty state in the ceph_cap, and asynchronously flush that
metadata change to the MDS.

In the event of a conflicting operation (perhaps by another client),
the MDS will revoke the conflicting client capabilities.

In order for a client to cache an inode, it must hold a capability
with at least one MDS server.  When inodes are released, release
notifications are batched and periodically sent en masse to the MDS
cluster to release server state.

Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/caps.c [new file with mode: 0644]