summaryrefslogtreecommitdiffstats
path: root/fs/ceph/osdmap.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ceph: add uid field to ceph_pg_poolSage Weil2010-02-111-0/+20
| | | | | | Also verify encoding version as we go. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: precede encoded ceph_pg_pool struct with versionSage Weil2010-01-261-1/+7
| | | | Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: fix incremental osdmap pg_temp decoding bugSage Weil2009-12-221-2/+1
| | | | | | | | | An incremental pg_temp wasn't being decoded properly (wrong bound on for loop). Also remove unused local variable, while we're at it. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: fix error paths for corrupt osdmap messagesSage Weil2009-12-221-5/+6
| | | | | | | Both osdmap_decode() and osdmap_apply_incremental() should never return NULL. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: hex dump corrupt server data to KERN_DEBUGSage Weil2009-12-221-0/+3
| | | | | | Also, print fsid using standard format, NOT hex dump. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: do not feed bad device ids to crushSage Weil2009-12-101-0/+5
| | | | | | Do not feed bad (large) device ids to CRUSH. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: make CRUSH hash function a bucket propertySage Weil2009-11-081-1/+2
| | | | | | | | Make the integer hash function a property of the bucket it is used on. This allows us to gracefully add support for new hash functions without starting from scatch. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: make object hash a pg_pool propertySage Weil2009-11-071-1/+1
| | | | | | | | | The object will be hashed to a placement seed (ps) based on the pg_pool's hash function. This allows new hashes to be introduced into an existing object store, or selection of a hash appropriate to the objects that will be stored in a particular pool. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: clean up 'osd%d down' console msgSage Weil2009-11-061-1/+1
| | | | | | No ceph prefix. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: fix endian conversions for ceph_pgSage Weil2009-11-051-39/+61
| | | | | | | | The endian conversions don't quite work with the old union ceph_pg. Just make it a regular struct, and make each field __le. This is simpler and it has the added bonus of actually working. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: use fixed endian encoding for ceph_entity_addrSage Weil2009-11-041-0/+3
| | | | | | | | | We exchange struct ceph_entity_addr over the wire and store it on disk. The sockaddr_storage.ss_family field, however, is host endianness. So, fix ss_family endianness to big endian when sending/receiving over the wire. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: fix intra strip unit length calculationNoah Watkins2009-10-301-5/+10
| | | | | | | | | | Commit 645a102581b3639836b17d147c35d574fd6e8267 fixes calculation of object offset for layouts with multiple stripes per object. This updates the calculation of the length written to take into account multiple stripes per object. Signed-off-by: Noah Watkins <noah@noahdesu.com> Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: fix object striping calculation for non-default striping schemesSage Weil2009-10-291-4/+7
| | | | | | | | | | | We were incorrectly calculationing of object offset. If we have multiple stripe units per object, we need to shift to the start of the current su in addition to the offset within the su. Also rename bno to ono (object number) to avoid some variable naming confusion. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: correct comment to match striping calculationSage Weil2009-10-291-1/+1
| | | | | | | | The object extent offset is the file offset _modulo_ the stripe unit. The code was correct, the comment was wrong. Reported-by: Noah Watkins <jayhawk@soe.ucsc.edu> Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: remove redundant use of le32_to_cpuNoah Watkins2009-10-291-1/+1
| | | | | | | | Using stripe unit size calculated and saved on the stack to avoid a redundant call to le32_to_cpu. Signed-off-by: Noah Watkins <noah@noahdesu.com> Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: include preferred osd in placement seedSage Weil2009-10-191-0/+2
| | | | | | | | | | Mix the preferred osd (if any) into the placement seed that is fed into the CRUSH object placement calculation. This prevents all the placement pgs from peering with the same osds. Rev the osd client protocol with this change. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: convert encode/decode macros to inlinesSage Weil2009-10-141-35/+35
| | | | | | | This avoids the fugly pass by reference and makes the code a bit easier to read. Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: fail gracefully on corrupt osdmap (bad pg_temp mapping)Sage Weil2009-10-091-5/+10
| | | | | | Return an error and report a corrupt map instead of crying BUG(). Signed-off-by: Sage Weil <sage@newdream.net>
* ceph: OSD clientSage Weil2009-10-061-0/+875
The OSD client is responsible for reading and writing data from/to the object storage pool. This includes determining where objects are stored in the cluster, and ensuring that requests are retried or redirected in the event of a node failure or data migration. If an OSD does not respond before a timeout expires, keepalive messages are sent across the lossless, ordered communications channel to ensure that any break in the TCP is discovered. If the session does reset, a reconnection is attempted and affected requests are resent (by the message transport layer). Signed-off-by: Sage Weil <sage@newdream.net>