virtual.c
branchtrunk
changeset 13 6ef9b2adca64
parent 6 6262df5a6216
child 15 a9348bf5f6e7
equal deleted inserted replaced
12:6d3770b1a9e1 13:6ef9b2adca64
    73     else if(virt_off>0) {
    73     else if(virt_off>0) {
    74       char *strip=strdup(virt_name);
    74       char *strip=strdup(virt_name);
    75       char *dot=rindex(strip,'.');
    75       char *dot=rindex(strip,'.');
    76       if(dot) {
    76       if(dot) {
    77         *dot=0;
    77         *dot=0;
    78         asprintf(&real_virt_name,"%s.%d",strip,disknum+virt_off);
    78         if(asprintf(&real_virt_name,"%s.%d",strip,disknum+virt_off)<0)
       
    79           error("error making virtual name");
    79         }
    80         }
    80       else serror("Bad filename format");
    81       else serror("Bad filename format");
    81       free(strip);
    82       free(strip);
    82       }
    83       }
    83     else {
    84     else {
    84       asprintf(&real_virt_name,"%s.%d",virt_name,disknum);
    85       if(asprintf(&real_virt_name,"%s.%d",virt_name,disknum)<0)
       
    86         error("error making virtual name");
    85       }
    87       }
    86     DEBUG("Vopen: real filename is '%s' disknum=%d virt_off=%d\n",
    88     DEBUG("Vopen: real filename is '%s' disknum=%d virt_off=%d\n",
    87           real_virt_name,disknum,virt_off);
    89           real_virt_name,disknum,virt_off);
    88     virtualMissing=0; virt_regular=0;
    90     virtualMissing=0; virt_regular=0;
    89     if((fd=open64(real_virt_name,ro ? O_RDONLY:O_RDWR))<0) {
    91     if((fd=open64(real_virt_name,ro ? O_RDONLY:O_RDWR))<0) {