Remove freespace checking code

This code depends on /etc/mtab existance, which is not very reliable in all
cases, especially in a chroot or non-Linux environment. Dump it for now
until we can find a better way.

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2007-06-02 13:17:26 -04:00
parent fe2c58fc92
commit ed13ac2cc8
4 changed files with 0 additions and 100 deletions

View file

@ -274,13 +274,6 @@ int _alpm_add_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data)
EVENT(trans, PM_TRANS_EVT_FILECONFLICTS_DONE, NULL, NULL);
}
#ifndef __sun__
if(_alpm_check_freespace(trans, data) == -1) {
/* pm_errno is set by check_freespace */
return(-1);
}
#endif
return(0);
}

View file

@ -753,17 +753,6 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
/*EVENT(trans, PM_TRANS_EVT_CHECKDEPS_DONE, NULL, NULL);*/
}
#ifndef __sun__
/* check for free space only in case the packages will be extracted */
if(!(trans->flags & PM_TRANS_FLAG_NOCONFLICTS)) {
if(_alpm_check_freespace(trans, data) == -1) {
/* pm_errno is set by check_freespace */
ret = -1;
goto cleanup;
}
}
#endif
cleanup:
alpm_list_free(list);
alpm_list_free(trail);

View file

@ -540,85 +540,6 @@ cleanup:
return(retval);
}
#ifndef __sun__
static long long get_freespace()
{
struct mntent *mnt;
const char *table = MOUNTED;
FILE *fp;
long long ret=0;
if((fp = setmntent(table, "r")) == NULL) {
_alpm_log(PM_LOG_ERROR, _("cannot read disk space information from %s: %s"),
table, strerror(errno));
return(-1);
}
while ((mnt = getmntent(fp)))
{
struct statvfs64 buf;
statvfs64(mnt->mnt_dir, &buf);
ret += buf.f_bavail * buf.f_bsize;
}
endmntent(fp);
return(ret);
}
int _alpm_check_freespace(pmtrans_t *trans, alpm_list_t **data)
{
alpm_list_t *i;
long long pkgsize=0, freespace;
ALPM_LOG_FUNC;
for(i = trans->packages; i; i = i->next) {
if(trans->type == PM_TRANS_TYPE_SYNC)
{
pmsyncpkg_t *sync = i->data;
if(sync->type != PM_SYNC_TYPE_REPLACE) {
pmpkg_t *pkg = sync->pkg;
pkgsize += alpm_pkg_get_isize(pkg);
}
}
else
{
pmpkg_t *pkg = i->data;
pkgsize += alpm_pkg_get_size(pkg);
}
}
freespace = get_freespace();
_alpm_log(PM_LOG_DEBUG, _("check_freespace: total pkg size: %lld, disk space: %lld"), pkgsize, freespace);
if(pkgsize > freespace) {
if(data) {
long long *ptr;
if((ptr = malloc(sizeof(long long)))==NULL) {
_alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(long long));
pm_errno = PM_ERR_MEMORY;
return(-1);
}
*ptr = pkgsize;
*data = alpm_list_add(*data, ptr);
if((ptr = malloc(sizeof(long long)))==NULL) {
_alpm_log(PM_LOG_ERROR, _("malloc failure: could not allocate %d bytes"), sizeof(long long));
FREELIST(*data);
pm_errno = PM_ERR_MEMORY;
return(-1);
}
*ptr = freespace;
*data = alpm_list_add(*data, ptr);
}
pm_errno = PM_ERR_DISK_FULL;
return(-1);
}
else {
return(0);
}
}
#endif
pmtranstype_t SYMEXPORT alpm_trans_get_type()
{
/* Sanity checks */

View file

@ -82,9 +82,6 @@ int _alpm_trans_update_depends(pmtrans_t *trans, pmpkg_t *pkg);
int _alpm_runscriptlet(const char *root, const char *installfn,
const char *script, const char *ver,
const char *oldver, pmtrans_t *trans);
#ifndef __sun__
int _alpm_check_freespace(pmtrans_t *trans, alpm_list_t **data);
#endif
#endif /* _ALPM_TRANS_H */