}
if (!canfork || debug || Fork() == 0) {
int nInodes;
- nInodes = status.st_size / sizeof(struct ViceInodeInfo);
+ unsigned long st_size=(unsigned long) status.st_size;
+ nInodes = st_size / sizeof(struct ViceInodeInfo);
if (nInodes == 0) {
fclose(summaryFile);
close(inodeFd);
RemoveTheForce(fileSysPath);
else {
struct VolumeSummary *vsp;
- int i, j;
+ int i;
GetVolumeSummary(singleVolumeNumber);
singleVolumeNumber ? "No applicable" : "No", dev);
return -1;
}
- ip = (struct ViceInodeInfo *)malloc(status.st_size);
+ ip = (struct ViceInodeInfo *)malloc(nInodes*sizeof(struct ViceInodeInfo));
if (ip == NULL) {
fclose(summaryFile);
close(inodeFd);
("Unable to allocate enough space to read inode table; %s not salvaged\n",
dev);
}
- if (read(inodeFd, ip, status.st_size) != status.st_size) {
+ if (read(inodeFd, ip, st_size) != st_size) {
fclose(summaryFile);
close(inodeFd);
unlink(path);
}
qsort(ip, nInodes, sizeof(struct ViceInodeInfo), CompareInodes);
if (afs_lseek(inodeFd, 0, SEEK_SET) == -1
- || write(inodeFd, ip, status.st_size) != status.st_size) {
+ || write(inodeFd, ip, st_size) != st_size) {
fclose(summaryFile);
close(inodeFd);
unlink(path);
assert(afs_fstat(fileno(summaryFile), &status) != -1);
if (status.st_size != 0) {
int ret;
- inodeSummary = (struct InodeSummary *)malloc(status.st_size);
+ unsigned long st_status=(unsigned long)status.st_size;
+ inodeSummary = (struct InodeSummary *)malloc(st_status);
assert(inodeSummary != NULL);
/* For GNU we need to do lseek to get the file pointer moved. */
assert(afs_lseek(fileno(summaryFile), 0, SEEK_SET) == 0);
- ret = read(fileno(summaryFile), inodeSummary, status.st_size);
- assert(ret == status.st_size);
+ ret = read(fileno(summaryFile), inodeSummary, st_status);
+ assert(ret == st_status);
}
- nVolumesInInodeFile = status.st_size / sizeof(struct InodeSummary);
+ nVolumesInInodeFile =(unsigned long)(status.st_size) / sizeof(struct InodeSummary);
+ Log("%d nVolumesInInodeFile %d \n",nVolumesInInodeFile,(unsigned long)(status.st_size));
fclose(summaryFile);
close(inodeFd);
unlink(summaryFileName);
/* Fix actual inode counts */
if (!Showmode) {
+ Log("totalInodes %d\n",totalInodes);
for (ip = inodes; totalInodes; ip++, totalInodes--) {
static int TraceBadLinkCounts = 0;
#ifdef AFS_NAMEI_ENV
}
ip->linkCount++;
}
+
+ Log("%d inodes to process\n",totalInodes);
}
#ifdef AFS_NAMEI_ENV
while (dec_VGLinkH > 0) {