* libparted/arch/linux.c (linux_new): When compiled with blkid support initialize arch_specific->probe and arch_specific->topology to NULL, as get_blkid_topology(), which sets them, does not get called for regular files. * libparted/arch/linux.c (get_blkid_topology): No need to set arch_specific->topology to NULL, as this now gets done by linux_new(). --- libparted/arch/linux.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c index 3069c59..7908c46 100644 --- a/libparted/arch/linux.c +++ b/libparted/arch/linux.c @@ -598,8 +598,6 @@ _have_kern26 () static void get_blkid_topology (LinuxSpecific *arch_specific) { - arch_specific->topology = NULL; - arch_specific->probe = blkid_new_probe (); if (!arch_specific->probe) return; @@ -1249,6 +1247,10 @@ linux_new (const char* path) goto error_free_path; arch_specific = LINUX_SPECIFIC (dev); arch_specific->dmtype = NULL; +#if USE_BLKID + arch_specific->probe = NULL; + arch_specific->topology = NULL; +#endif
dev->open_count = 0; dev->read_only = 0;
* libparted/arch/linux.c (linux_get_xxx_alignment): blkid's topology io size may be 0 when blkid could not get the minimum / optimum iosize. Return NULL in this case instead of returning a bogus (grain_size == 0) alignment. --- libparted/arch/linux.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c index 7908c46..9566db8 100644 --- a/libparted/arch/linux.c +++ b/libparted/arch/linux.c @@ -2529,7 +2529,7 @@ linux_get_minimum_alignment(const PedDevice *dev) { blkid_topology tp = LINUX_SPECIFIC(dev)->topology;
- if (!tp) + if (!tp || blkid_topology_get_minimum_io_size(tp) == 0) return NULL; /* ped_alignment_none */
return ped_alignment_new( @@ -2542,7 +2542,7 @@ linux_get_optimum_alignment(const PedDevice *dev) { blkid_topology tp = LINUX_SPECIFIC(dev)->topology;
- if (!tp) + if (!tp || blkid_topology_get_optimal_io_size(tp) == 0) return NULL; /* ped_alignment_none */
return ped_alignment_new(
anaconda-devel@lists.fedoraproject.org