gparted/include
Mike Fleetwood 3828019030 Read file system size for mounted ext2/3/4 from superblock (#683255)
A user had a 190 MiB partition containing an old ext2 file system.  When
unmounted it was reported as filling the partition, but when mounted it
was reported as having 6% unallocated space.  The file system's inode
tables were approximately twice the size of those created by default
with the current mkfs.ext2 defaults.

To create an equivalent file system in a 190 MiB partition:
    mkfs.ext2 -N 97344 /dev/sda15

It turns out that for ext2, ext3 and ext4 file systems what was
described as intrinsic unallocated space during the development of
Bug #499202 is actually file system overhead.  When mounted the ext2/3/4
kernel code reports the size of the file system after subtracting the
overhead.  Overhead is made up of superblock backups, group descriptors,
allocation bitmaps and largest of all inode tables.  E2fsprogs tools
don't subtract this overhead when reporting the file system size.

References:

 *  The Second Extended File System, Internal Layout, by Dave Poirier
    http://www.nongnu.org/ext2-doc/ext2.html

 *  Linux ext2_statfs() function
    http://lxr.linux.no/#linux+v3.5.3/fs/ext2/super.c#L1311

Call the file system specific method for reading the usage of ext2, ext3
and ext4 file systems while mounted.  Make it read the file system size
from the on disk superblock to avoid subtraction of overhead and use the
statvfs() system call to return an up to date free space figure.

Bug #683255 - ext2: statvfs differs from dumpe2fs (x MB unallocated
              space within the partition)
2012-10-02 13:19:29 -06:00
..
.cvsignore added *.swp some modifications to pass 'make distcheck' minor cleanups 2005-11-25 12:59:47 +00:00
DMRaid.h Remove all usage of kpartx to avoid partition entry duplicates 2011-02-22 14:40:02 -07:00
Device.h Add sector size to device display pane 2010-02-20 15:12:26 -07:00
DialogFeatures.h Add support for setting UUID (#667278) 2012-01-23 12:32:27 -07:00
DialogManageFlags.h improved behaviour of flagmanagementdialog. 2006-04-02 11:18:34 +00:00
Dialog_Base_Partition.h Prevent crash from pressing Esc in dialogs with number entry (#682658) 2012-08-30 13:14:04 -06:00
Dialog_Disklabel.h Bug #634090: Change some attributes to local variables 2011-07-18 13:28:49 -06:00
Dialog_Partition_Copy.h Set sector size and add to operation and dialog methods 2010-04-19 19:22:31 -06:00
Dialog_Partition_Info.h Display unallocated space in the information dialog (#499202) 2012-06-18 10:24:28 -06:00
Dialog_Partition_Label.h Bug #634090: Change some attributes to local variables 2011-07-18 13:28:49 -06:00
Dialog_Partition_New.h Fix unused parameter compiler warning 2011-07-18 13:31:54 -06:00
Dialog_Partition_Resize_Move.h in some places i still used MiB's instead of sectors to store sizes. this 2006-02-25 10:09:30 +00:00
Dialog_Progress.h Bug #634090: Change some attributes to local variables 2011-07-18 13:28:49 -06:00
Dialog_Rescue_Data.h Added support to lost data recovery using gpart 2011-01-29 14:58:02 -07:00
DrawingAreaVisualDisk.h Simplify main window partition usage graphic code 2012-06-26 14:13:31 -06:00
FS_Info.h Add methods to FS_Info class to get path by uuid and by label 2010-12-09 14:06:38 -07:00
FileSystem.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
Frame_Resizer_Base.h Limit graphic movement according to required boot record space 2010-05-25 16:26:08 -06:00
Frame_Resizer_Extended.h did lots of work on the resizer, it's behaviour should be more natural and 2006-03-01 19:16:13 +00:00
GParted_Core.h Make mounted partition usage method selectable per file system (#683255) 2012-10-02 13:19:29 -06:00
HBoxOperations.h added popupmenu to operationslist and did some (higrelated) cleanups 2006-09-17 13:23:47 +00:00
LVM2_PV_Info.h Implement common LVM2_PV_Info cache search and index functions 2012-08-30 13:47:46 -06:00
Makefile.am Cache results from querying all LVM2 PVs (#160787) 2012-02-02 10:24:28 -07:00
Operation.h Add support for setting UUID (#667278) 2012-01-23 12:32:27 -07:00
OperationChangeUUID.h Add support for setting UUID (#667278) 2012-01-23 12:32:27 -07:00
OperationCheck.h added 'check' operation. The functionality was already there, but it was 2006-11-26 14:27:16 +00:00
OperationCopy.h implemented some stuff to find a good blocksize to use for copy/move. 2006-08-08 19:04:29 +00:00
OperationCreate.h renamed some enums 2006-07-29 15:20:32 +00:00
OperationDelete.h renamed some enums 2006-07-29 15:20:32 +00:00
OperationDetail.h Cleanup file copyright entries 2009-11-05 11:08:49 -07:00
OperationFormat.h renamed some enums 2006-07-29 15:20:32 +00:00
OperationLabelPartition.h gparted-0.3.6 - code recreation from Source Forge 2008-04-07 19:41:18 +00:00
OperationResizeMove.h renamed some enums 2006-07-29 15:20:32 +00:00
Partition.h Simplify calc_usage_triple() interface and rename 2012-06-26 14:13:31 -06:00
Proc_Partitions_Info.h Refactor device parsing logic into Proc_Partitions_Info class 2010-12-07 16:01:54 -07:00
SWRaid.h Added auto detection of Linux software RAID devices 2009-11-03 13:30:44 -07:00
TreeView_Detail.h trivial cleanups 2006-09-16 15:00:25 +00:00
Utils.h Read file system size for mounted ext2/3/4 from superblock (#683255) 2012-10-02 13:19:29 -06:00
Win_GParted.h Rename *toggle_swap_mount* -> *toggle_busy* 2012-08-30 13:47:45 -06:00
btrfs.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
exfat.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
ext2.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
ext3.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
ext4.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
fat16.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
fat32.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
hfs.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
hfsplus.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
i18n.h enabled support for reiserfs 2004-10-06 15:32:40 +00:00
jfs.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
linux_swap.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
lvm2_pv.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
nilfs2.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
ntfs.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
reiser4.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
reiserfs.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
ufs.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00
xfs.h Add file system specific remove() methods (#670171) 2012-08-30 13:47:45 -06:00