gparted/HACKING

73 lines
2.8 KiB
Plaintext

git guidelines for gparted
==========================
Please do not commit directly to the git.gnome.org/gparted repository
unless you have been given the green light to commit freely to
gparted. When in doubt assume you haven't ;-).
If you are a translator feel free to mark strings for translation, fix
typos in the code, etc. I'd appreciate it if you would notify me of
anything you've done.
Please send patches for build & configure fixes too. I really appreciate
your help, I just want to review these fixes before applying.
!!WHENEVER YOU COMMIT, PLACE A COMMENT IN GIT!!
even when it's only one character. =)
Thanks,
Curtis
partition usage and unallocated space
=====================================
After addressing bug #499202 GParted now also displays unallocated space
as well as used and unused space for recognised file systems. Many file
systems which actually fill their partition report a small amount of
intrinsic unallocated space when mounted, but not when unmounted. To
avoid confusing the user and unnecessarily alarming them don't show
unallocated space below a threshold, 2 to 5% depending on partition
size. It is just included in the used figure instead. (This is
effectively how GParted behaved before bug #499202 was addressed). When
above the threshold unallocated space is shown graphically, the numeric
figure is shown in the Information Dialog and a is warning displayed.
See the code and commit messages for more details.
Worked example of partition and file system usage for a newly created
jfs file system in a 200 MiB partition reporting a small amount of
unallocated space:
# sfdisk -s /dev/sda9
204800
# echo dm | jfs_debugfs /dev/sda9 | egrep 'Block Size:|dn_mapsize:|dn_nfree:'
Aggregate Block Size: 4096
[1] dn_mapsize: 0x0000000c6cb [9] dn_agheigth: 0
[2] dn_nfree: 0x0000000c6a3 [10] dn_agwidth: 1
Partition size = 204800 (1K blocks) = 409600 (512 byte sectors)
FS size = 0x0c6cb (4K blocks)
= 50891 (4K blocks) = 407128 (512 byte sectors)
FS free = 0x0c6a3 (4K blocks)
= 50851 (4K blocks) = 406808 (512 byte sectors)
Calculation:
size = ptn_size = 409600 = 200.00 MiB
used = fs_size - fs_free = 407128 - 406808 = 320 = 160.00 KiB
unused = fs_free = 406808 = 198.64 MiB
unallocated = ptn_size - fs_size = 409600 - 407128 = 2472 = 1.21 MiB
(Threshold %age for 200 MiB partition is approximately 4.675%)
threshold = ptn_size * pct = 19150 = 9.35 MiB
(Unallocated is below threshold so is included in used figure)
disp_used = used + unallocated = 320 + 2472 = 2792 = 1.36 MiB
disp_unused = unused = 406808 = 198.64 MiB
Figures displayed in the Information dialog:
Size: 200.00 MiB
Used: 1.36 MiB ( 1% )
Unused: 198.64 KiB ( 99% )