2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-16 09:13:55 +08:00
linux-next/fs/ceph
Sage Weil a8599bd821 ceph: capability management
The Ceph metadata servers control client access to inode metadata and
file data by issuing capabilities, granting clients permission to read
and/or write both inode field and file data to OSDs (storage nodes).
Each capability consists of a set of bits indicating which operations
are allowed.

If the client holds a *_SHARED cap, the client has a coherent value
that can be safely read from the cached inode.

In the case of a *_EXCL (exclusive) or FILE_WR capabilities, the client
is allowed to change inode attributes (e.g., file size, mtime), note
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>
2009-10-06 11:31:12 -07:00
..
crush ceph: CRUSH mapping algorithm 2009-10-06 11:31:11 -07:00
addr.c ceph: address space operations 2009-10-06 11:31:09 -07:00
buffer.c ceph: ref counted buffer 2009-10-06 11:31:07 -07:00
buffer.h ceph: ref counted buffer 2009-10-06 11:31:07 -07:00
caps.c ceph: capability management 2009-10-06 11:31:12 -07:00
ceph_debug.h ceph: client types 2009-10-06 11:31:07 -07:00
ceph_frag.c ceph: client types 2009-10-06 11:31:07 -07:00
ceph_frag.h ceph: client types 2009-10-06 11:31:07 -07:00
ceph_fs.c ceph: on-wire types 2009-10-06 11:31:06 -07:00
ceph_fs.h ceph: on-wire types 2009-10-06 11:31:06 -07:00
ceph_strings.c ceph: on-wire types 2009-10-06 11:31:06 -07:00
ceph_ver.h ceph: client types 2009-10-06 11:31:07 -07:00
dir.c ceph: directory operations 2009-10-06 11:31:08 -07:00
file.c ceph: file operations 2009-10-06 11:31:08 -07:00
inode.c ceph: inode operations 2009-10-06 11:31:08 -07:00
mds_client.c ceph: MDS client 2009-10-06 11:31:09 -07:00
mds_client.h ceph: MDS client 2009-10-06 11:31:09 -07:00
mdsmap.c ceph: MDS client 2009-10-06 11:31:09 -07:00
mdsmap.h ceph: MDS client 2009-10-06 11:31:09 -07:00
mon_client.c ceph: monitor client 2009-10-06 11:31:11 -07:00
mon_client.h ceph: monitor client 2009-10-06 11:31:11 -07:00
msgr.h ceph: on-wire types 2009-10-06 11:31:06 -07:00
osd_client.c ceph: OSD client 2009-10-06 11:31:10 -07:00
osd_client.h ceph: OSD client 2009-10-06 11:31:10 -07:00
osdmap.c ceph: OSD client 2009-10-06 11:31:10 -07:00
osdmap.h ceph: OSD client 2009-10-06 11:31:10 -07:00
rados.h ceph: on-wire types 2009-10-06 11:31:06 -07:00
super.c ceph: super.c 2009-10-06 11:31:07 -07:00
super.h ceph: client types 2009-10-06 11:31:07 -07:00
types.h ceph: client types 2009-10-06 11:31:07 -07:00
xattr.c ceph: inode operations 2009-10-06 11:31:08 -07:00