}
/**
- * Find out whether a node is an orphan node.
+ * Find out whether a node is an orphan.
*
* \param btrn The buffer tree node.
*
* \return True if \a btrn has no parent.
*
- * This function will always return true for the root node. However in case
- * nodes have been removed from the tree, other nodes may become orphans too.
+ * This function returns true for the root node and false for any other node.
+ *
+ * After a (non-leaf) node was removed removed from the tree, the function
+ * returns true for all child nodes.
*/
bool btr_no_parent(struct btr_node *btrn)
{
ch->parent = btrn->parent;
if (btrn->parent)
list_move(&ch->node, &btrn->parent->children);
+ else
+ list_del(&ch->node);
}
assert(list_empty(&btrn->children));
btrn->parent = NULL;
#include "signal.h"
#include "version.h"
-struct server_command afs_cmds[] = {DEFINE_AFS_CMD_ARRAY};
-struct server_command server_cmds[] = {DEFINE_SERVER_CMD_ARRAY};
+static struct server_command afs_cmds[] = {DEFINE_AFS_CMD_ARRAY};
+static struct server_command server_cmds[] = {DEFINE_SERVER_CMD_ARRAY};
/** Commands including options must be shorter than this. */
#define MAX_COMMAND_LEN 32768
int ret;
struct sb_context *sbc;
struct iovec iov[2];
- struct sb_buffer sbb = SBB_INIT(band, buf, numbytes);
sb_transformation trafo = band < SBD_PROCEED? NULL : sc_trafo;
+ struct sb_buffer sbb = SBB_INIT(band, buf, numbytes);
sbc = sb_new_send(&sbb, dont_free, trafo, scc->send);
do {
if (ret < 0)
goto out;
end = iov->iov_base + iov->iov_len;
- for (i = 0, p = iov->iov_base; p < end; i++)
+ for (i = 0; p < end; i++)
p += strlen(p) + 1;
cc->argc = i;
cc->argv = para_malloc((cc->argc + 1) * sizeof(char *));