Unix CM: Make rootVolume array big enough
[openafs.git] / src / afs / afs.h
index 49dee43..443bd0b 100644 (file)
@@ -88,6 +88,7 @@ extern int afs_shuttingdown;
 #define        MAXVOLS         128     /* max vols we can store */
 #define        MAXSYSNAME      128     /* max sysname (i.e. @sys) size */
 #define MAXNUMSYSNAMES 32      /* max that current constants allow */
+#define MAXROOTVOLNAMELEN      64      /* max length of root volume name */
 #define        NOTOKTIMEOUT    (2*3600)        /* time after which to timeout conns sans tokens */
 #define        NOPAG           0xffffffff
 
@@ -803,6 +804,11 @@ struct fvcache {
     struct afs_vnuniq oldParent;
 };
 
+/* Values for 'mvstat' in struct vcache */
+#define AFS_MVSTAT_FILE (0x0) /* regular file or directory */
+#define AFS_MVSTAT_MTPT (0x1) /* mountpoint */
+#define AFS_MVSTAT_ROOT (0x2) /* volume root dir */
+
 #ifdef AFS_SUN5_ENV
 /*
  * This is for the multiPage field in struct vcache. Each one of these
@@ -877,7 +883,15 @@ struct vcache {
 #endif
 #endif
 
-    struct VenusFid *mvid;     /* Either parent dir (if root) or root (if mt pt) */
+    union {
+       char *silly_name;        /* For sillyrenamed regular files, the silly
+                                 * name the file was renamed to. */
+       struct VenusFid *target_root; /* For mountpoints, the fid of the root dir
+                                      * in the target volume. */
+       struct VenusFid *parent; /* For root dir vcaches, the fid of the
+                                 * parent dir. */
+    } mvid;
+
     char *linkData;            /* Link data if a symlink. */
     afs_hyper_t flushDV;       /* data version last flushed from text */
     afs_hyper_t mapDV;         /* data version last flushed from map */
@@ -894,7 +908,7 @@ struct vcache {
     short execsOrWriters;      /* The number of execs (if < 0) or writers (if > 0) of
                                 * this file. */
     short flockCount;          /* count of flock readers, or -1 if writer */
-    char mvstat;               /* 0->normal, 1->mt pt, 2->root. */
+    char mvstat;               /* see the AFS_MVSTAT_* constants */
 
     char cachingStates;                        /* Caching policies for this file */
     afs_uint32 cachingTransitions;             /* # of times file has flopped between caching and not */