summaryrefslogtreecommitdiff
path: root/include/linux/raid
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/raid')
-rw-r--r--include/linux/raid/linear.h1
-rw-r--r--include/linux/raid/md.h4
-rw-r--r--include/linux/raid/md_k.h29
-rw-r--r--include/linux/raid/multipath.h1
-rw-r--r--include/linux/raid/raid1.h1
-rw-r--r--include/linux/raid/raid5.h1
6 files changed, 8 insertions, 29 deletions
diff --git a/include/linux/raid/linear.h b/include/linux/raid/linear.h
index 56e7c06e1086..dfb588a60ea6 100644
--- a/include/linux/raid/linear.h
+++ b/include/linux/raid/linear.h
@@ -4,7 +4,6 @@
#include <linux/raid/md.h>
struct dev_info {
- kdev_t dev;
struct block_device *bdev;
unsigned long size;
unsigned long offset;
diff --git a/include/linux/raid/md.h b/include/linux/raid/md.h
index 19ebeb0a4988..280092c6e95b 100644
--- a/include/linux/raid/md.h
+++ b/include/linux/raid/md.h
@@ -66,7 +66,7 @@ extern struct hd_struct md_hd_struct[MAX_MD_DEVS];
extern char * partition_name (kdev_t dev);
extern inline char * bdev_partition_name (struct block_device *bdev)
{
- return partition_name(to_kdev_t(bdev->bd_dev));
+ return partition_name(bdev ? to_kdev_t(bdev->bd_dev) : NODEV);
}
extern int register_md_personality (int p_num, mdk_personality_t *p);
extern int unregister_md_personality (int p_num);
@@ -77,7 +77,7 @@ extern void md_wakeup_thread(mdk_thread_t *thread);
extern void md_interrupt_thread (mdk_thread_t *thread);
extern void md_update_sb (mddev_t *mddev);
extern void md_done_sync(mddev_t *mddev, int blocks, int ok);
-extern void md_sync_acct(kdev_t dev, unsigned long nr_sectors);
+extern void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors);
extern int md_error (mddev_t *mddev, struct block_device *bdev);
extern int md_run_setup(void);
diff --git a/include/linux/raid/md_k.h b/include/linux/raid/md_k.h
index e238bd222ea2..7b02c3c82a33 100644
--- a/include/linux/raid/md_k.h
+++ b/include/linux/raid/md_k.h
@@ -160,16 +160,6 @@ struct mdk_rdev_s
int desc_nr; /* descriptor index in the superblock */
};
-
-/*
- * disk operations in a working array:
- */
-#define DISKOP_SPARE_INACTIVE 0
-#define DISKOP_SPARE_WRITE 1
-#define DISKOP_SPARE_ACTIVE 2
-#define DISKOP_HOT_REMOVE_DISK 3
-#define DISKOP_HOT_ADD_DISK 4
-
typedef struct mdk_personality_s mdk_personality_t;
struct mddev_s
@@ -213,19 +203,12 @@ struct mdk_personality_s
int (*run)(mddev_t *mddev);
int (*stop)(mddev_t *mddev);
int (*status)(char *page, mddev_t *mddev);
- int (*error_handler)(mddev_t *mddev, kdev_t dev);
-
-/*
- * Some personalities (RAID-1, RAID-5) can have disks hot-added and
- * hot-removed. Hot removal is different from failure. (failure marks
- * a disk inactive, but the disk is still part of the array) The interface
- * to such operations is the 'pers->diskop()' function, can be NULL.
- *
- * the diskop function can change the pointer pointing to the incoming
- * descriptor, but must do so very carefully. (currently only
- * SPARE_ACTIVE expects such a change)
- */
- int (*diskop) (mddev_t *mddev, mdp_disk_t **descriptor, int state);
+ int (*error_handler)(mddev_t *mddev, struct block_device *bdev);
+ int (*hot_add_disk) (mddev_t *mddev, mdp_disk_t *descriptor, mdk_rdev_t *rdev);
+ int (*hot_remove_disk) (mddev_t *mddev, int number);
+ int (*spare_write) (mddev_t *mddev, int number);
+ int (*spare_inactive) (mddev_t *mddev);
+ int (*spare_active) (mddev_t *mddev, mdp_disk_t **descriptor);
int (*sync_request)(mddev_t *mddev, sector_t sector_nr, int go_faster);
};
diff --git a/include/linux/raid/multipath.h b/include/linux/raid/multipath.h
index 9c9cdc77fa05..e4f3e6189b7b 100644
--- a/include/linux/raid/multipath.h
+++ b/include/linux/raid/multipath.h
@@ -6,7 +6,6 @@
struct multipath_info {
int number;
int raid_disk;
- kdev_t dev;
struct block_device *bdev;
/*
diff --git a/include/linux/raid/raid1.h b/include/linux/raid/raid1.h
index f9f02ab19bd3..f63d68e55c11 100644
--- a/include/linux/raid/raid1.h
+++ b/include/linux/raid/raid1.h
@@ -8,7 +8,6 @@ typedef struct mirror_info mirror_info_t;
struct mirror_info {
int number;
int raid_disk;
- kdev_t dev;
struct block_device *bdev;
sector_t head_position;
atomic_t nr_pending;
diff --git a/include/linux/raid/raid5.h b/include/linux/raid/raid5.h
index e14864259ffd..7f8beb8acdaa 100644
--- a/include/linux/raid/raid5.h
+++ b/include/linux/raid/raid5.h
@@ -192,7 +192,6 @@ struct stripe_head {
struct disk_info {
- kdev_t dev;
struct block_device *bdev;
int operational;
int number;