SYNOPSIS

#include <sys/types.h>

#include "dpm_api.h"

int dpm_addpool (struct dpm_pool *dpm_pool)

DESCRIPTION

dpm_addpool defines a new disk pool.

dpm_pool

contains the pool definition.

struct dpm_pool {
	char		poolname[CA_MAXPOOLNAMELEN+1];
	u_signed64	defsize;
	int		gc_start_thresh;
	int		gc_stop_thresh;
	int		def_lifetime;
	int		defpintime;
	int		max_lifetime;
	int		maxpintime;
	char		fss_policy[CA_MAXPOLICYLEN+1];
	char		gc_policy[CA_MAXPOLICYLEN+1];
	char		mig_policy[CA_MAXPOLICYLEN+1];
	char		rs_policy[CA_MAXPOLICYLEN+1];
	int		nbgids;
	gid_t		*gids;
	char		ret_policy;
	char		s_type;
	u_signed64	capacity;
	u_signed64	free;
	int		nbelem;
};

poolname

specifies the disk pool name.

defsize

specifies the default amount of space reserved for a file (in bytes).

gc_start_thresh

specifies the minimum free space in the pool. If the percentage of free space goes below this value, the garbage collector is started. Default is 0.

gc_stop_thresh

specifies the percentage of free space in the pool above which the garbage collector is stopped. Default is 0.

def_lifetime

specifies the default time a space or volatile file is kept in the system (in seconds).

defpintime

specifies the default time a file is kept on a given disk (in seconds).

max_lifetime

specifies the maximum time a space or volatile file is kept in the system (in seconds).

maxpintime

specifies the maximum time a file is kept on a given disk (in seconds).

nbgids

is the size of the array of group ids gids.

gids

The disk pool is restricted to this set of gids unless the group gid is zero.

ret_policy

specifies the retention policy supported by the disk pool. It can be R (for Replica), O (for Output) or C (for Custodial).

s_type

indicates the type of space supported in the disk pool. It can be V (for Volatile), D (for Durable), P (for Permanent) or - (to accept any type).

This function requires ADMIN privilege.

RETURN VALUE

This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, serrno is set appropriately.

ERRORS

EACCES

The caller does not have ADMIN privilege.

EFAULT

dpm_pool is a NULL pointer.

EEXIST

This pool exists already.

ENOMEM

Memory could not be allocated for storing the pool definition.

EINVAL

The length of poolname exceeds CA_MAXPOOLNAMELEN or the number of gids is too big.

SENOSHOST

Host unknown.

SEINTERNAL

Database error.

SECOMERR

Communication error.