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) { |