Coda Distributed File System
Classes | Macros | Enumerations | Functions | Variables
venusvol.h File Reference
#include <stdarg.h>
#include <stdio.h>
#include <rpc2/errors.h>
#include <rpc2/rpc2.h>
#include <rpc2/se.h>
#include <callback.h>
#include <codadir.h>
#include <vice.h>
#include <dlist.h>
#include <rec_dlist.h>
#include <olist.h>
#include <rec_olist.h>
#include <ohash.h>
#include <rec_ohash.h>
#include <voldefs.h>
#include "comm.h"
#include "venusrecov.h"
#include "realmdb.h"
#include "venus.private.h"
#include "vsg.h"
Include dependency graph for venusvol.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cmlstats
 
class  ClientModifyLog
 
struct  CmlFlags
 
class  cmlent
 
class  cml_iterator
 
class  vdb
 
struct  VolFlags
 
struct  FidRange
 
class  volent
 
class  reintvol
 
class  volrep
 
class  repvol
 
class  volent_iterator
 
class  repvol_iterator
 
class  nonrepvol_iterator
 
class  volrep_iterator
 
class  reintvol_iterator
 
class  cop2ent
 
class  resent
 

Macros

#define VDB   (rvg->recov_VDB)
 
#define VM_MUTATING   0x1
 
#define VM_OBSERVING   0x2
 
#define VM_RESOLVING   0x4
 
#define VM_NDELAY
 
#define NO_ASR   0
 
#define CmlIterOrder   DlIterOrder
 
#define CommitOrder   DlAscending
 
#define AbortOrder   DlDescending
 
#define VOL_ASSERT(v, ex)
 
#define PRINT_VOLSTATE(state)
 
#define PRINT_VOLMODE(mode)
 
#define PRINT_MLETYPE(op)
 
#define FAKEROOTFID(fid)    ((fid).Vnode == 0xffffffff) /* && ((fid).Unique == 0x80000)) */
 

Enumerations

enum  VolLockType { EX_VOL_LK , SH_VOL_LK }
 
enum  VolumeStateType {
  Unreachable = 1 , Reachable , Resolving , Unreachable = 1 ,
  Reachable , Resolving
}
 
enum  VenusVolType { ReplicatedVolume , VolumeReplica }
 

Functions

void VolDaemon (void) EXCLUDES_TRANSACTION
 
void TrickleReintegrate () EXCLUDES_TRANSACTION
 
void VolInit (void) EXCLUDES_TRANSACTION
 
void VolInitPost (void)
 
int VOL_HashFN (void *)
 
void VOLD_Init (void)
 
void Reintegrate (reintvol *)
 
void Resolve (volent *)
 
void RecoverPathName (char *, VenusFid *, ClientModifyLog *, cmlent *)
 
int PathAltered (VenusFid *, char *, ClientModifyLog *, cmlent *)
 

Variables

const int VDB_MagicNumber = 6820348
 
const int VDB_NBUCKETS = 512
 
const int VOLENT_MagicNumber = 3614246
 
const int MLENT_MagicNumber = 5214113
 
const int MLENTMaxFreeEntries = 32
 
const int UNSET_TID = -1
 
const unsigned V_UNSETAGE = (unsigned)-1
 
const unsigned V_UNSETREINTLIMIT = (unsigned)-1
 
int MLEs
 
int LogOpts
 
int allow_backfetch
 
int vcbbreaks
 
char voldaemon_sync
 
char VCBEnabled
 
int default_reintegration_age
 
int default_reintegration_time
 
const unsigned int COP2SIZE = 1024
 

Macro Definition Documentation

◆ AbortOrder

#define AbortOrder   DlDescending

◆ CmlIterOrder

#define CmlIterOrder   DlIterOrder

◆ CommitOrder

#define CommitOrder   DlAscending

◆ FAKEROOTFID

#define FAKEROOTFID (   fid)     ((fid).Vnode == 0xffffffff) /* && ((fid).Unique == 0x80000)) */

◆ NO_ASR

#define NO_ASR   0

◆ PRINT_MLETYPE

#define PRINT_MLETYPE (   op)
Value:
((op) == CML_Store_OP ? "Store" : \
(op) == CML_Truncate_OP ? "Truncate" : \
(op) == CML_Utimes_OP ? "Utimes" : \
(op) == CML_Chown_OP ? "Chown" : \
(op) == CML_Chmod_OP ? "Chmod" : \
(op) == CML_Create_OP ? "Create" : \
(op) == CML_Remove_OP ? "Remove" : \
(op) == CML_Link_OP ? "Link" : \
(op) == CML_Rename_OP ? "Rename" : \
(op) == CML_MakeDir_OP ? "Mkdir" : \
(op) == CML_RemoveDir_OP ? "Rmdir" : \
(op) == CML_SymLink_OP ? "Symlink" : \
(op) == CML_Repair_OP ? "Repair" : \
"???")

◆ PRINT_VOLMODE

#define PRINT_VOLMODE (   mode)
Value:
((mode) & VM_OBSERVING ? "Observing" : \
(mode) & VM_MUTATING ? "Mutating" : \
(mode) & VM_RESOLVING ? "Resolving" : \
"???")
#define VM_MUTATING
Definition: venusvol.h:103
#define VM_RESOLVING
Definition: venusvol.h:105
#define VM_OBSERVING
Definition: venusvol.h:104

◆ PRINT_VOLSTATE

#define PRINT_VOLSTATE (   state)
Value:
((state) == Resolving ? "Resolving" : \
(state) == Unreachable ? "Unreachable" : \
(state) == Reachable ? "Reachable" : \
"???")
@ Unreachable
Definition: venusvol.h:559
@ Reachable
Definition: venusvol.h:560
@ Resolving
Definition: venusvol.h:561

◆ VDB

#define VDB   (rvg->recov_VDB)

◆ VM_MUTATING

#define VM_MUTATING   0x1

◆ VM_NDELAY

#define VM_NDELAY
Value:
0x8 /* this is really a flag! it is not
exclusive with the others!
Indicates the caller doesn't want
to be put to sleep if the volume is
already locked. It's necessary to
keep daemons from getting ``stuck''
on volumes already in use. */

◆ VM_OBSERVING

#define VM_OBSERVING   0x2

◆ VM_RESOLVING

#define VM_RESOLVING   0x4

◆ VOL_ASSERT

#define VOL_ASSERT (   v,
  ex 
)
Value:
{ \
if (!(ex)) { \
(v)->print(logFile); \
CHOKE("Assertion failed: file \"%s\", line %d\n", __FILE__, \
} \
}
FILE * logFile
Definition: venusutil.cc:82
#define __FILE__
Definition: odytypes.h:64
#define __LINE__
Definition: odytypes.h:68

Enumeration Type Documentation

◆ VenusVolType

Enumerator
ReplicatedVolume 
VolumeReplica 

◆ VolLockType

Enumerator
EX_VOL_LK 
SH_VOL_LK 

◆ VolumeStateType

Enumerator
Unreachable 
Reachable 
Resolving 
Unreachable 
Reachable 
Resolving 

Function Documentation

◆ PathAltered()

int PathAltered ( VenusFid cfid,
char *  suffix,
ClientModifyLog CML,
cmlent starter 
)

◆ RecoverPathName()

void RecoverPathName ( char *  path,
VenusFid fid,
ClientModifyLog CML,
cmlent starter 
)

◆ Reintegrate()

void Reintegrate ( reintvol v)

◆ Resolve()

void Resolve ( volent v)

◆ TrickleReintegrate()

void TrickleReintegrate ( )

◆ VOL_HashFN()

int VOL_HashFN ( void *  )

◆ VOLD_Init()

void VOLD_Init ( void  )

◆ VolDaemon()

void VolDaemon ( void  )

◆ VolInit()

void VolInit ( void  )

◆ VolInitPost()

void VolInitPost ( void  )

Variable Documentation

◆ allow_backfetch

int allow_backfetch
extern

◆ COP2SIZE

const unsigned int COP2SIZE = 1024

◆ default_reintegration_age

int default_reintegration_age
extern

◆ default_reintegration_time

int default_reintegration_time
extern

◆ LogOpts

int LogOpts
extern

◆ MLENT_MagicNumber

const int MLENT_MagicNumber = 5214113

◆ MLENTMaxFreeEntries

const int MLENTMaxFreeEntries = 32

◆ MLEs

int MLEs
extern

◆ UNSET_TID

const int UNSET_TID = -1

◆ V_UNSETAGE

const unsigned V_UNSETAGE = (unsigned)-1

◆ V_UNSETREINTLIMIT

const unsigned V_UNSETREINTLIMIT = (unsigned)-1

◆ vcbbreaks

int vcbbreaks
extern

◆ VCBEnabled

char VCBEnabled
extern

◆ VDB_MagicNumber

const int VDB_MagicNumber = 6820348

◆ VDB_NBUCKETS

const int VDB_NBUCKETS = 512

◆ voldaemon_sync

char voldaemon_sync
extern

◆ VOLENT_MagicNumber

const int VOLENT_MagicNumber = 3614246