]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
ceph: capability management
authorSage Weil <sage@newdream.net>
Tue, 19 May 2009 21:45:32 +0000 (14:45 -0700)
committerSage Weil <sage@newdream.net>
Tue, 19 May 2009 21:45:32 +0000 (14:45 -0700)
commit26eafdeb14c8462ca74176c9b98c5ac9456bb109
tree540171b9c93d51a32d909f7f144cd78eb30b7fe7
parentd8c7e2ca64c6f95a0cd31c35a7171aa7297f97cc
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
it's 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.

A subset of capabilities (termed 'rdcaps') are opportunistically
issued by the MDS to grant the a client read lease on metadata, and
time out automatically.  Other capabilities (write capabilities, and
those that are "wanted" due to an open file) are explicitly released.
fs/ceph/caps.c [new file with mode: 0644]