fix-attach-directories-code-to-properly-use-vgetpartition-20011011
[openafs.git] / src / volser / volprocs.c
index 93bce59..547e99a 100644 (file)
@@ -626,6 +626,10 @@ char *newName;
     ClearVolumeStats(&V_disk(newvp));
     V_destroyMe(newvp) = DESTROY_ME;
     V_inService(newvp) = 0;
+    if (newType == backupVolume) {
+       V_backupDate(originalvp) = V_copyDate(newvp);
+       V_backupDate(newvp) = V_copyDate(newvp);
+    }
     V_inUse(newvp) = 0;
     VUpdateVolume(&error, newvp);
     if (error) {
@@ -779,6 +783,10 @@ afs_int32 cloneId;
     ClearVolumeStats(&V_disk(clonevp));
     V_destroyMe(clonevp) = 0;
     V_inService(clonevp) = 0;
+    if (newType == backupVolume) {
+       V_backupDate(originalvp) = V_copyDate(clonevp);
+       V_backupDate(clonevp) = V_copyDate(clonevp);
+    }
     V_inUse(clonevp) = 0;
     VUpdateVolume(&error, clonevp);
     if (error) {
@@ -1585,13 +1593,11 @@ struct rx_call *acid;
 struct pIDs *partIds;
 {   
     char namehead[9];
-    struct stat rbuf, pbuf;
     int code;
     char i;
 
     strcpy(namehead, "/vicep");        /*7 including null terminator*/
 
-#ifdef AFS_NT40_ENV
     /* Just return attached partitions. */
     namehead[7] = '\0';
     for (i=0; i<26; i++) {
@@ -1599,23 +1605,7 @@ struct pIDs *partIds;
        if (VGetPartition(namehead, 0))
            partIds->partIds[i] = VGetPartition(namehead, 0) ? i : -1;
     }
-#else
-    
-    (void) stat("/",&rbuf);    /*interested in buf->st_dev*/
-   
-    for(i = 0 ; i < 26 ; i++){
-       
-       namehead[6] = i + 'a';
-       namehead[7] = '\0';
-       code = stat(namehead,&pbuf);
-       if(!code){
-           if(rbuf.st_dev != pbuf.st_dev) /*the partition is mounted */
-               partIds->partIds[i] = i ;
-           else  partIds->partIds[i ] = -1;
-       }
-       else partIds->partIds[i ] = -1;
-    }
-#endif   
+
     return 0;
 }
 
@@ -1639,10 +1629,12 @@ struct partEntries *pEntries;
     struct stat rbuf, pbuf;
     char namehead[9];
     struct partList partList;
-    int code, i, j=0, k;
+    struct DiskPartition *dp;
+    int i, j=0, k;
 
     strcpy(namehead, "/vicep");        /*7 including null terminator*/
-#ifdef AFS_NT40_ENV
+
+    /* Only report attached partitions */
     for(i = 0 ; i < VOLMAXPARTS; i++){
        if (i < 26) {
            namehead[6] = i + 'a';
@@ -1653,35 +1645,13 @@ struct partEntries *pEntries;
            namehead[7] = 'a' + (k%26);
            namehead[8] = '\0';
        }
-       code = VGetPartition(namehead, 0);
-       if (code)
+       dp = VGetPartition(namehead, 0);
+       if (dp)
            partList.partId[j++] = i;
     }
     pEntries->partEntries_val = (afs_int32 *) malloc(j * sizeof(int));
     memcpy((char *)pEntries->partEntries_val, (char *)&partList, j * sizeof(int));
     pEntries->partEntries_len = j;
-#else
-    code = stat("/",&rbuf);    /*interested in buf->st_dev*/
-    for(i = 0 ; i < VOLMAXPARTS; i++){
-       if (i < 26) {
-           namehead[6] = i + 'a';
-           namehead[7] = '\0';
-       } else {
-           k = i - 26;
-           namehead[6] = 'a' + (k/26);
-           namehead[7] = 'a' + (k%26);
-           namehead[8] = '\0';
-       }
-       code = stat(namehead,&pbuf);
-       if(!code){
-           if(rbuf.st_dev != pbuf.st_dev) /*the partition is mounted */
-               partList.partId[j++] = i;
-       }
-    } 
-    pEntries->partEntries_val = (afs_int32 *) malloc(j * sizeof(int));
-    memcpy((char *)pEntries->partEntries_val, (char *)&partList, j * sizeof(int));
-    pEntries->partEntries_len = j;
-#endif
     return 0;
 
 }