raid1.h

来自「是关于linux2.5.1的完全源码」· C头文件 代码 · 共 99 行

H
99
字号
#ifndef _RAID1_H#define _RAID1_H#include <linux/raid/md.h>typedef struct mirror_info mirror_info_t;struct mirror_info {	int		number;	int		raid_disk;	kdev_t		dev;	sector_t	head_position;	atomic_t	nr_pending;	/*	 * State bits:	 */	int		operational;	int		write_only;	int		spare;	int		used_slot;};typedef struct r1bio_s r1bio_t;struct r1_private_data_s {	mddev_t			*mddev;	mirror_info_t		mirrors[MD_SB_DISKS];	int			nr_disks;	int			raid_disks;	int			working_disks;	int			last_used;	sector_t		next_seq_sect;	mdk_thread_t		*thread, *resync_thread;	int			resync_mirrors;	mirror_info_t		*spare;	spinlock_t		device_lock;	/* for use when syncing mirrors: */	spinlock_t		resync_lock;	int nr_pending;	int barrier;	sector_t		next_resync;	wait_queue_head_t	wait_idle;	wait_queue_head_t	wait_resume;	mempool_t *r1bio_pool;	mempool_t *r1buf_pool;};typedef struct r1_private_data_s conf_t;/* * this is the only point in the RAID code where we violate * C type safety. mddev->private is an 'opaque' pointer. */#define mddev_to_conf(mddev) ((conf_t *) mddev->private)/* * this is our 'private' RAID1 bio. * * it contains information about what kind of IO operations were started * for this RAID1 operation, and about their status: */struct r1bio_s {	atomic_t		remaining; /* 'have we finished' count,					    * used from IRQ handlers					    */	int			cmd;	sector_t		sector;	unsigned long		state;	mddev_t			*mddev;	/*	 * original bio going to /dev/mdx	 */	struct bio		*master_bio;	/*	 * if the IO is in READ direction, then this bio is used:	 */	struct bio		*read_bio;	int			read_disk;	/*	 * if the IO is in WRITE direction, then multiple bios are used:	 */	struct bio		*write_bios[MD_SB_DISKS];	r1bio_t			*next_r1; /* next for retry or in free list */	struct list_head	retry_list;};/* bits for r1bio.state */#define	R1BIO_Uptodate	1#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?