mirror of
https://github.com/torvalds/linux.git
synced 2026-07-20 12:39:33 +02:00
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> |
||
|---|---|---|
| .. | ||
| crush | ||
| addr.c | ||
| buffer.c | ||
| buffer.h | ||
| caps.c | ||
| ceph_debug.h | ||
| ceph_frag.c | ||
| ceph_frag.h | ||
| ceph_fs.c | ||
| ceph_fs.h | ||
| ceph_strings.c | ||
| ceph_ver.h | ||
| dir.c | ||
| file.c | ||
| inode.c | ||
| mds_client.c | ||
| mds_client.h | ||
| mdsmap.c | ||
| mdsmap.h | ||
| mon_client.c | ||
| mon_client.h | ||
| msgr.h | ||
| osd_client.c | ||
| osd_client.h | ||
| osdmap.c | ||
| osdmap.h | ||
| rados.h | ||
| super.c | ||
| super.h | ||
| types.h | ||
| xattr.c | ||