Jens Axboe wrote: > On Mon, Sep 01 2008, Alasdair G Kergon wrote: >> On Mon, Sep 01, 2008 at 05:15:58AM -0400, Valdis.Kletnieks@xxxxxx wrote: >>> On Mon, 01 Sep 2008 09:58:40 +0200, Tejun Heo said: >>>> Yeah, I made a mistake converting two of them and devt lookup fails when >>>> the disk is zero sized. Bartlomiej debugged the problem and posted a >>>> patch and I followed up with an updated patch. It should be fine in the >>>> next round. >>>> http://article.gmane.org/gmane.linux.kernel.next/2663 >>>> http://article.gmane.org/gmane.linux.kernel.next/2676 >>>> If you're seeing other problems, please let me know. >>> Confirming - 2.6.27-rc5-mmotm0829 plus the merge of the 2 above patches >>> does find the LVM volumes and come up. Thanks for the clue.. :) >> I expect we'll need some patches to userspace lvm2 to support these extended >> device numbers properly too... >> >> Alasdair (back from holiday) > > They'll be defaulting to off from now on, so it should not be a big > worry. But Alan Brunelle did find that the "10-character limit > in dm/lib/libdm-deptree is too small". > Tejun pointed out: "dev_t is 32bits and MINORBITS is 20. So, major 12 bits, minor 20 bits, so 4 characters for major, 7 characters for minor." That would mean: 4+':'+7+'\0' = 13 characters at a minimum, so attached patch seems to work...
[PATCH] Set major,minor buffers to 13 character to hold largest values Need 4 for major, 7 for minor, 1 for the separator plus 1 for the terminator. Signed-off-by: Alan D. Brunelle <alan.brunelle@xxxxxx> --- lib/libdm-deptree.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libdm-deptree.c b/lib/libdm-deptree.c index c73ed50..a437311 100644 --- a/lib/libdm-deptree.c +++ b/lib/libdm-deptree.c @@ -1243,7 +1243,7 @@ static int _emit_areas_line(struct dm_task *dmt __attribute((unused)), size_t paramsize, int *pos) { struct seg_area *area; - char devbuf[10]; + char devbuf[13]; int tw; const char *prefix = ""; @@ -1270,7 +1270,7 @@ static int _emit_segment_line(struct dm_task *dmt, struct load_segment *seg, uin int pos = 0; int tw; int r; - char originbuf[10], cowbuf[10], logbuf[10]; + char originbuf[13], cowbuf[13], logbuf[13]; const char *logtype; switch(seg->type) { -- 1.5.4.3
-- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel