Hi Frans, all, On Thursday 27 July 2006 14:05, Frans Pop wrote: > Conclusion: either resize_partition calls the wrong libparted function, > or there is a bug in parted's ped_disk_set_partition_geom function.
Looking at the definition of ped_disk_set_partition_geom() in libparted/disk.c, line 1889 ff., version 1.7.1-3, has this in the preceding comment: [...] * \warning The constraint warning from ped_disk_add_partition() applies. [...] The definition of ped_disk_add_partition() further up has this in the preceding comment: [...] * \warning The partition's geometry may be changed, subject to \p constraint. * You could set \p constraint to <tt>ped_constraint_exact(&part->geom)</tt>, but * many partition table schemes have special requirements on the start * and end of partitions. Therefore, having an overly strict constraint * will probably mean that this function will fail (in which * case \p part will be left unmodified) * \p part is assigned a number (\p part->num) in this process. [...] So, maybe this is not so much an issue of the ped_disk_set_partition_geom() function being actually wrong but rather calling it with the exact constraint? _add_duplicate_part () even further up has this: [...] constraint_exact = ped_constraint_exact (&new_part->geom); [...] Looking at partman-base-99's parted_server.c, in resize_partition() I see: [...] if (NULL != fs) constraint = ped_file_system_get_resize_constraint(fs); else constraint = ped_constraint_any(disk->dev); if (!ped_disk_set_partition_geom(disk, part, constraint, start, end)) result = false; else if (NULL == fs) result = true; else if (timered_file_system_resize(fs, &(part->geom))) { result = true; } else { ped_disk_set_partition_geom(disk, part, ped_constraint_any(disk->dev), old_start, old_end); result = false; } [...] Would it be possible to change/amend the above so that parted_server calls ped_disk_set_partition_geom() with the exact constraint set in case the partition to resize contains a Vista NTFS filesystem? Best regards, Andree -- Andree Leidenfrost @ Debian Developer Sydney - Australia
signature.asc
Description: This is a digitally signed message part