/* *Mapafileextenttoastripeunitwithinanobject. *Fillinobjno,offsetintoobject,andobjectextentlength(i.e.the *numberofbytesmapped,lessthanorequalto@l->stripe_unit). * *Exampleforstripe_count=3,stripes_per_object=4: * *blockno|0369|14710|25811|12151821|131619 *stripeno|0123|0123|0123|4567|456 *stripepos|0|1|2|0|1 *objno|0|1|2|3|4 *objsetno|0|1
*/ void ceph_calc_file_object_mapping(struct ceph_file_layout *l,
u64 off, u64 len,
u64 *objno, u64 *objoff, u32 *xlen)
{
u32 stripes_per_object = l->object_size / l->stripe_unit;
u64 blockno; /* which su in the file (i.e. globally) */
u32 blockoff; /* offset into su */
u64 stripeno; /* which stripe */
u32 stripepos; /* which su in the stripe,
which object in the object set */
u64 objsetno; /* which object set */
u32 objsetpos; /* which stripe in the object set */
ex = lookup_containing(object_extents, objno, objoff, xlen); if (!ex) {
WARN(1, "%s: objno %llu %llu~%u not found!\n",
__func__, objno, objoff, xlen); return -EINVAL;
}
action_fn(ex, xlen, action_arg);
off += xlen;
len -= xlen;
}
return0;
}
EXPORT_SYMBOL(ceph_iterate_extents);
/* *Reversemapanobjectextenttoasortedlistoffileextents. * *Onsuccess,thecallerisresponsiblefor: * *kfree(file_extents)
*/ int ceph_extent_to_file(struct ceph_file_layout *l,
u64 objno, u64 objoff, u64 objlen, struct ceph_file_extent **file_extents,
u32 *num_file_extents)
{
u32 stripes_per_object = l->object_size / l->stripe_unit;
u64 blockno; /* which su */
u32 blockoff; /* offset into su */
u64 stripeno; /* which stripe */
u32 stripepos; /* which su in the stripe,
which object in the object set */
u64 objsetno; /* which object set */
u32 i = 0;
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.11Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-09-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.