[parted-devel] parted (v.2.3) does not create new /dev/ devices for newly created partitions (second and next) on RAID device
Petr Uzel
petr.uzel at suse.cz
Thu Sep 29 13:39:55 UTC 2011
On Mon, Sep 05, 2011 at 03:31:06PM +0200, Petr Uzel wrote:
> On Fri, Sep 02, 2011 at 12:39:37PM +0000, Dorau, Lukasz wrote:
> > Summary:
> >
> > parted (v.2.3) does not create new /dev/ devices for newly created partitions
> > (second and next) on RAID device
> >
> > Novell's Bugzilla: #715695
> >
> > https://bugzilla.novell.com/show_bug.cgi?id=715695
>
> The bug is not publicly I'm afraid. But there is another bug, which
> has the same root cause and is publicly accessible:
> https://bugzilla.novell.com/show_bug.cgi?id=567652
>
> > Details:
> >
> > I have RAID0 device (MD) on two phisical disks. I have created 3 primary
> > partitions on it. There were all 3 partitions in the partition table, but only
> > one new device appeared in /dev/ filesystem (only for the first of these three
> > partitions).
> >
> [SNIP]
>
> I'm attaching a patch that fixes it with request for comments - is
> replacing range with ext_range the right thing to do or am I missing
> something important?
BTW, I just noticed this issue has been already raised on this mailing list
by Jianbin Kange: http://lists.gnu.org/archive/html/bug-parted/2010-09/msg00013.html
> From 77f1d6abdbdf42a17f331ca1d0b55d1163e390db Mon Sep 17 00:00:00 2001
> From: Petr Uzel <petr.uzel at suse.cz>
> Date: Mon, 5 Sep 2011 15:16:15 +0200
> Subject: [PATCH] libparted: use ext_range to find out largest possible partition
>
> Parted uses /sys/block/DEV/range file to find out how many partitions
> can the blockdevice hold and uses this number in its algorithm
> for informing the kernel about modified partitions. This works
> fine for most devices, however, it fails on partitionable MD arrays,
> because these have 1 in range file. Using ext_range should be safer
> and work for all devices.
>
> * libparted/arch/linux.c (_device_get_partition_range): Use
> /sys/block/DEV/ext_range instead of range sysfs file
>
> Signed-off-by: Petr Uzel <petr.uzel at suse.cz>
> ---
> 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 bc42750..5eb1471 100644
> --- a/libparted/arch/linux.c
> +++ b/libparted/arch/linux.c
> @@ -2416,7 +2416,7 @@ _blkpg_remove_partition (PedDisk* disk, int n)
>
> /*
> * The number of partitions that a device can have depends on the kernel.
> - * If we don't find this value in /sys/block/DEV/range, we will use our own
> + * If we don't find this value in /sys/block/DEV/ext_range, we will use our own
> * value.
> */
> static unsigned int
> @@ -2427,7 +2427,7 @@ _device_get_partition_range(PedDevice* dev)
> FILE* fp;
> bool ok;
>
> - r = snprintf(path, sizeof(path), "/sys/block/%s/range",
> + r = snprintf(path, sizeof(path), "/sys/block/%s/ext_range",
> last_component(dev->path));
> if (r < 0 || r >= sizeof(path))
> return MAX_NUM_PARTS;
Petr
--
Petr Uzel
IRC: ptr_uzl @ freenode
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/parted-devel/attachments/20110929/8efa404a/attachment.pgp>
More information about the parted-devel
mailing list