Bug 64256 - rpm no longer checks fat or vfat file system space on installs
Summary: rpm no longer checks fat or vfat file system space on installs
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: rpm
Version: 7.2
Hardware: All
OS: Linux
medium
high
Target Milestone: ---
Assignee: Jeff Johnson
QA Contact:
URL: http://groups.google.com/groups?hl=en...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2002-04-30 19:33 UTC by Need Real Name
Modified: 2008-05-01 15:38 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2002-04-30 19:33:37 UTC
Embargoed:


Attachments (Terms of Use)

Description Need Real Name 2002-04-30 19:33:33 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.8) Gecko/20020204

Description of problem:
The rpm command checks for adequate disk space on installs, however
the addition of a check for sufficient inodes as well caused the
disk space check to be skipped for file systems that report useful
disk space via statfs, but not useful inode counts.

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1.Attempt an rpm install to a fat or vfat file system w/o enough space
2.The install will fail to recognize the disk space problem

	

Actual Results:  One botched install, half finished when it ran out of space.

Expected Results:  I expected an error message instead.

Additional info:

This is particular critical for ia64 systems, which install kernels
to the /boot/efi directory, which is a vfat file system.  Depending
on just how far one gets, one could get a system that the end user
doesn't know how to reboot again, which is why I rated this bug High
severity.

Suggested patch:

diff -Naur rpm-4.0.4.orig/lib/transaction.c rpm-4.0.4/lib/transaction.c
--- rpm-4.0.4.orig/lib/transaction.c    Sun Feb  3 14:46:52 2002
+++ rpm-4.0.4/lib/transaction.c Tue Apr 30 12:28:25 2002
@@ -1895,11 +1895,7 @@
 
                dip = ts->di + i;
 
-               /* XXX Avoid FAT and other file systems that have not inodes. */
-               if (dip->iavail <= 0)
-                   continue;
-
-               if (adj_fs_blocks(dip->bneeded) > dip->bavail)
+               if (dip->iavail > 0 && adj_fs_blocks(dip->bneeded) > dip->bavail)
                    psAppend(ts->probs, RPMPROB_DISKSPACE, fi->ap,
                                ts->filesystems[i], NULL, NULL,
                   (adj_fs_blocks(dip->bneeded) - dip->bavail) * dip->bsize);

Comment 1 Jeff Johnson 2002-06-05 19:01:35 UTC
Patch added in my next checkin, should be in rpm-4.1-0.23.


Note You need to log in before you can comment on or make changes to this bug.