* and the offset.
*
* Returns 0 if it reached the end of the directory.
- * If @cb returns a negative error code, stop and return that.
+ * If @a cb returns a negative error code, stop and return that.
*/
int readdir_r_cb(dir_result_t *dirp, add_dirent_cb_t cb, void *p);
*
* check if any of the listed addresses is configured on the local host.
*
- * @cct context
- * @ls list of addresses
- * @match [out] pointer to match, if an item in @ls is found configured locally.
+ * @param cct context
+ * @param ls list of addresses
+ * @param match [out] pointer to match, if an item in @a ls is found configured locally.
*/
bool have_local_addr(CephContext *cct, const list<entity_addr_t>& ls, entity_addr_t *match);
/**
* crush_get_bucket_item_weight - Get weight of an item in given bucket
- * @b: bucket pointer
- * @p: item index in bucket
+ * @param b bucket pointer
+ * @param p item index in bucket
*/
int crush_get_bucket_item_weight(const struct crush_bucket *b, int p)
{
/**
* crush_calc_parents - Calculate parent vectors for the given crush map.
- * @map: crush_map pointer
+ * @param map crush_map pointer
*/
void crush_calc_parents(struct crush_map *map)
{
/**
* crush_destroy - Destroy a crush_map
- * @map: crush_map pointer
+ * @param map crush_map pointer
*/
void crush_destroy(struct crush_map *map)
{
/**
* crush_find_rule - find a crush_rule id for a given ruleset, type, and size.
- * @map: the crush_map
- * @ruleset: the storage ruleset id (user defined)
- * @type: storage ruleset type (user defined)
- * @size: output set size
+ * @param map the crush_map
+ * @param ruleset the storage ruleset id (user defined)
+ * @param type storage ruleset type (user defined)
+ * @param size output set size
*/
int crush_find_rule(const struct crush_map *map, int ruleset, int type, int size)
{
/**
* crush_choose - choose numrep distinct items of given type
- * @map: the crush_map
- * @bucket: the bucket we are choose an item from
- * @x: crush input value
- * @numrep: the number of items to choose
- * @type: the type of item to choose
- * @out: pointer to output vector
- * @outpos: our position in that vector
- * @firstn: true if choosing "first n" items, false if choosing "indep"
- * @recurse_to_leaf: true if we want one device under each item of given type
- * @out2: second output vector for leaf items (if @recurse_to_leaf)
+ * @param map the crush_map
+ * @param bucket the bucket we are choose an item from
+ * @param x crush input value
+ * @param numrep the number of items to choose
+ * @param type the type of item to choose
+ * @param out pointer to output vector
+ * @param outpos our position in that vector
+ * @param firstn true if choosing "first n" items, false if choosing "indep"
+ * @param recurseto_leaf: true if we want one device under each item of given type
+ * @param out2 second output vector for leaf items (if @a recurse_to_leaf)
*/
static int crush_choose(const struct crush_map *map,
struct crush_bucket *bucket,
/**
* crush_do_rule - calculate a mapping with the given input and rule
- * @map: the crush_map
- * @ruleno: the rule id
- * @x: hash input
- * @result: pointer to result vector
- * @result_max: maximum result size
- * @force: force initial replica choice; -1 for none
+ * @param map the crush_map
+ * @param ruleno the rule id
+ * @param x hash input
+ * @param result pointer to result vector
+ * @param resultmax: maximum result size
+ * @param force force initial replica choice; -1 for none
*/
int crush_do_rule(const struct crush_map *map,
int ruleno, int x, int *result, int result_max,
}
/**
- * get_branch -- get branch point at OR above frag @x
- * - may be @x itself, if @x is a split
+ * get_branch -- get branch point at OR above frag @a x
+ * - may be @a x itself, if @a x is a split
* - may be root (frag_t())
*/
frag_t get_branch(frag_t x) const {
}
/**
- * get_branch_above -- get a branch point above frag @x
+ * get_branch_above -- get a branch point above frag @a x
* - may be root (frag_t())
- * - may NOT be @x, even if @x is a split.
+ * - may NOT be @a x, even if @a x is a split.
*/
frag_t get_branch_above(frag_t x) const {
while (1) {
/**
- * get_branch_or_leaf -- get branch or leaf point parent for frag @x
- * - may be @x itself, if @x is a split or leaf
+ * get_branch_or_leaf -- get branch or leaf point parent for frag @a x
+ * - may be @a x itself, if @a x is a split or leaf
* - may be root (frag_t())
*/
frag_t get_branch_or_leaf(frag_t x) const {
}
/**
- * contains(fg) -- does fragtree contain the specific frag @x
+ * contains(fg) -- does fragtree contain the specific frag @a x
*/
bool contains(frag_t x) const {
std::list<frag_t> q;
/**
* rejoin_walk - build rejoin declarations for a subtree
*
- * @dir subtree root
- * @rejoin rejoin message
+ * @param dir subtree root
+ * @param rejoin rejoin message
*
* from a rejoining node:
* weak dirfrag
/**
* parallel_fetch -- make a pass at fetching a bunch of paths in parallel
*
- * @pathmap - map of inodeno to full pathnames. we remove items from this map
- * as we discover we have them.
+ * @param pathmap map of inodeno to full pathnames. we remove items
+ * from this map as we discover we have them.
*
* returns true if there is work to do, false otherwise.
*/
/**
* open_remote_dir -- open up a remote dirfrag
*
- * @diri - base inode
- * @approxfg - approximate fragment.
- * @fin - completion callback
+ * @param diri base inode
+ * @param approxfg approximate fragment.
+ * @param fin completion callback
*/
void MDCache::open_remote_dirfrag(CInode *diri, frag_t approxfg, Context *fin)
{
/**
* get_dentry_inode - get or open inode
*
- * @dn the dentry
- * @mdr current request
+ * @param dn the dentry
+ * @param mdr current request
*
* will return inode for primary, or link up/open up remote link's inode as necessary.
* If it's not available right now, puts mdr on wait list and returns null.
/**
* adjust_dir_fragments -- adjust fragmentation for a directory
*
- * @diri - directory inode
- * @basefrag - base fragment
- * @bits - bit adjustment. positive for split, negative for merge.
+ * @param diri directory inode
+ * @param basefrag base fragment
+ * @param bits bit adjustment. positive for split, negative for merge.
*/
void MDCache::adjust_dir_fragments(CInode *diri, frag_t basefrag, int bits,
list<CDir*>& resultfrags,
* @param mdr The MDRequest associated with the path. Can be null.
* @param req The Message associated with the path. Can be null.
* @param fin The Context associated with the path. Can be null.
- * @param filepath The path to traverse to.
- * @pdnvec Data return parameter -- on success, contains a vector of dentries.
- * On failure, is either empty or contains the full trace of traversable
- * dentries.
+ * @param path The path to traverse to.
+ * @param pdnvec Data return parameter -- on success, contains a
+ * vector of dentries. On failure, is either empty or contains the
+ * full trace of traversable dentries.
* @param pin Data return parameter -- if successful, points to the inode
* associated with filepath. If unsuccessful, is null.
* @param onfail Specifies different lookup failure behaviors. If set to
/**
* try_open_auth_dirfrag -- open dirfrag, or forward to dirfrag auth
*
- * @diri base indoe
- * @fg the exact frag we want
- * @mdr request
- * Returns: the pointer, or NULL if it had to be delayed (but mdr is taken care of)
+ * @param diri base inode
+ * @param fg the exact frag we want
+ * @param mdr request
+ * @returns the pointer, or NULL if it had to be delayed (but mdr is taken care of)
*/
CDir* Server::try_open_auth_dirfrag(CInode *diri, frag_t fg, MDRequest *mdr)
{
/**
* Implements collection prehashing.
+ *
+ * @verbatim
* (root) - 0 - 0
* - 1
* - E
* .
* .
* - F - 0
+ * @endverbatim
+ *
* A file is located at the longest existing directory from the root
* given by the hex characters in the hash beginning with the least
* significant.
struct PriorSet {
set<int> probe; /// current+prior OSDs we need to probe.
- set<int> down; /// down osds that would normally be in @probe and might be interesting.
+ set<int> down; /// down osds that would normally be in @a probe and might be interesting.
map<int,epoch_t> blocked_by; /// current lost_at values for any OSDs in cur set for which (re)marking them lost would affect cur set
- bool pg_down; /// some down osds are included in @cur; the DOWN pg state bit should be set.
+ bool pg_down; /// some down osds are included in @a cur; the DOWN pg state bit should be set.
PriorSet(const OSDMap &osdmap,
const map<epoch_t, Interval> &past_intervals,
const vector<int> &up,