1
0
mirror of https://github.com/moparisthebest/pacman synced 2024-08-13 17:03:46 -04:00

Add error message stating which partition is full

This is helpful anyway to the user, and should also be helpful to us if we
see problems cropping up in the check during development.

Also add a missing ->used = 0 initialization in the code path less taken.

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2011-01-11 19:49:27 -06:00
parent 55bff19b76
commit 6942bba75d

View File

@ -84,8 +84,8 @@ static alpm_list_t *mount_point_list(void)
mp->mount_dir = strdup(mnt->mnt_dir);
memcpy(&(mp->fsp), &fsp, sizeof(FSSTATSTYPE));
mp->blocks_needed = 0;
mp->max_blocks_needed = 0;
mp->blocks_needed = 0l;
mp->max_blocks_needed = 0l;
mp->used = 0;
mount_points = alpm_list_add(mount_points, mp);
@ -107,8 +107,9 @@ static alpm_list_t *mount_point_list(void)
mp->mount_dir = strdup(fsp->f_mntonname);
memcpy(&(mp->fsp), fsp, sizeof(FSSTATSTYPE));
mp->blocks_needed = 0;
mp->max_blocks_needed = 0;
mp->blocks_needed = 0l;
mp->max_blocks_needed = 0l;
mp->used = 0;
mount_points = alpm_list_add(mount_points, mp);
}
@ -178,8 +179,7 @@ static int calculate_removed_size(const alpm_list_t *mount_points,
data = mp->data;
/* the addition of (divisor - 1) performs ceil() with integer division */
data->blocks_needed -=
(st.st_size + data->fsp.f_bsize - 1) / data->fsp.f_bsize;
data->used = 1;
(st.st_size + data->fsp.f_bsize - 1l) / data->fsp.f_bsize;
}
return(0);
@ -230,7 +230,7 @@ static int calculate_installed_size(const alpm_list_t *mount_points,
data = mp->data;
/* the addition of (divisor - 1) performs ceil() with integer division */
data->blocks_needed +=
(archive_entry_size(entry) + data->fsp.f_bsize - 1) / data->fsp.f_bsize;
(archive_entry_size(entry) + data->fsp.f_bsize - 1l) / data->fsp.f_bsize;
data->used = 1;
}
@ -306,6 +306,9 @@ int _alpm_check_diskspace(pmtrans_t *trans, pmdb_t *db_local)
(unsigned long)data->fsp.f_bfree);
if(data->max_blocks_needed + cushion >= 0 &&
(unsigned long)(data->max_blocks_needed + cushion) > data->fsp.f_bfree) {
_alpm_log(PM_LOG_ERROR, _("Partition %s too full: %ld blocks needed, %ld blocks free)\n"),
data->mount_dir, data->max_blocks_needed + cushion,
(unsigned long)data->fsp.f_bfree);
abort = 1;
}
}