--- drivers/block/genhd.c-dist Wed Aug 21 17:53:05 1996 +++ drivers/block/genhd.c Wed Aug 21 21:44:28 1996 @@ -386,8 +386,33 @@ add_partition(hd, current_minor, START_SECT(p), NR_SECTS(p)); } } - printk("\n"); brelse(bh); +/*BEGIN plan9*/ + if (current_minor%16 > 0) { + long start, end, size; + char *data; + size=hd->part[current_minor & 0xf0].nr_sects; + size/=2; /* blocksize=512 */ + if (!(bh = bread(dev,size-1,1024))) { + printk(" unable to read plan9 partition table\n"); + return 1; + } + data = bh->b_data + 512; + if (strncmp(data, "plan9 partitions", 16) == 0) { + printk(" ["); + if ((data=strstr(data, "fs "))) { + start=simple_strtoul(data+3,&data,10); + end=simple_strtoul(data+1,&data,10); + /*printk(" plan9-fs %ld %ld =",start,end);*/ + add_partition(hd,current_minor,start,end-start-1); + current_minor++; + } + printk(" ]"); + } + brelse(bh); + } +/*END plan9*/ + printk("\n"); return 1; }