patch-2.4.11-dontuse linux/fs/partitions/sgi.c
Next file: linux/fs/partitions/sgi.h
Previous file: linux/fs/partitions/osf.h
Back to the patch index
Back to the overall index
- Lines: 56
- Date:
Mon Oct 1 20:03:26 2001
- Orig file:
v2.4.10/linux/fs/partitions/sgi.c
- Orig date:
Sun Mar 12 19:39:39 2000
diff -u --recursive --new-file v2.4.10/linux/fs/partitions/sgi.c linux/fs/partitions/sgi.c
@@ -17,11 +17,12 @@
#include "check.h"
#include "sgi.h"
-int sgi_partition(struct gendisk *hd, kdev_t dev, unsigned long first_sector, int current_minor)
+int sgi_partition(struct gendisk *hd, struct block_device *bdev, unsigned long first_sector, int current_minor)
{
int i, csum, magic;
unsigned int *ui, start, blocks, cs;
- struct buffer_head *bh;
+ Sector sect;
+ kdev_t dev = to_kdev_t(bdev->bd_dev);
struct sgi_disklabel {
int magic_mushroom; /* Big fat spliff... */
short root_part_num; /* Root partition number */
@@ -43,17 +44,15 @@
} *label;
struct sgi_partition *p;
- if(!(bh = bread(dev, 0, get_ptable_blocksize(dev)))) {
- if (warn_no_part) printk(KERN_WARNING "Dev %s: unable to read partition table\n", kdevname(dev));
+ label = (struct sgi_disklabel *) read_dev_sector(bdev, 0, §);
+ if (!label)
return -1;
- }
- label = (struct sgi_disklabel *) bh->b_data;
p = &label->partitions[0];
magic = label->magic_mushroom;
if(be32_to_cpu(magic) != SGI_LABEL_MAGIC) {
/*printk("Dev %s SGI disklabel: bad magic %08x\n",
- kdevname(dev), magic);*/
- brelse(bh);
+ bdevname(dev), magic);*/
+ put_dev_sector(sect);
return 0;
}
ui = ((unsigned int *) (label + 1)) - 1;
@@ -63,8 +62,8 @@
}
if(csum) {
printk(KERN_WARNING "Dev %s SGI disklabel: csum bad, label corrupted\n",
- kdevname(dev));
- brelse(bh);
+ bdevname(dev));
+ put_dev_sector(sect);
return 0;
}
/* All SGI disk labels have 16 partitions, disks under Linux only
@@ -81,6 +80,6 @@
current_minor++;
}
printk("\n");
- brelse(bh);
+ put_dev_sector(sect);
return 1;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)