mirror of
https://github.com/moparisthebest/pacman
synced 2025-01-09 04:57:59 -05: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:
parent
55bff19b76
commit
6942bba75d
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user