⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 raid5.h

📁 GNU Hurd 源代码
💻 H
字号:
#ifndef _RAID5_H#define _RAID5_H#ifdef __KERNEL__#include <linux/md.h>#include <asm/atomic.h>struct disk_info {	kdev_t	dev;	int	operational;	int	number;	int	raid_disk;	int	write_only;	int	spare;};struct stripe_head {	struct stripe_head	*hash_next, **hash_pprev; /* hash pointers */	struct stripe_head	*free_next;		/* pool of free sh's */	struct buffer_head	*buffer_pool;		/* pool of free buffers */	struct buffer_head	*bh_pool;		/* pool of free bh's */	struct raid5_data	*raid_conf;	struct buffer_head	*bh_old[MD_SB_DISKS];	/* disk image */	struct buffer_head	*bh_new[MD_SB_DISKS];	/* buffers of the MD device (present in buffer cache) */	struct buffer_head	*bh_copy[MD_SB_DISKS];	/* copy on write of bh_new (bh_new can change from under us) */	struct buffer_head	*bh_req[MD_SB_DISKS];	/* copy of bh_new (only the buffer heads), queued to the lower levels */	int			cmd_new[MD_SB_DISKS];	/* READ/WRITE for new */	int			new[MD_SB_DISKS];	/* buffer added since the last handle_stripe() */	unsigned long		sector;			/* sector of this row */	int			size;			/* buffers size */	int			pd_idx;			/* parity disk index */	int			nr_pending;		/* nr of pending cmds */	unsigned long		state;			/* state flags */	int			cmd;			/* stripe cmd */	int			count;			/* nr of waiters */	int			write_method;		/* reconstruct-write / read-modify-write */	int			phase;			/* PHASE_BEGIN, ..., PHASE_COMPLETE */	struct wait_queue	*wait;			/* processes waiting for this stripe */};/* * Phase */#define PHASE_BEGIN		0#define PHASE_READ_OLD		1#define PHASE_WRITE		2#define PHASE_READ		3#define PHASE_COMPLETE		4/* * Write method */#define METHOD_NONE		0#define RECONSTRUCT_WRITE	1#define READ_MODIFY_WRITE	2/* * Stripe state */#define STRIPE_LOCKED		0#define STRIPE_ERROR		1/* * Stripe commands */#define STRIPE_NONE		0#define	STRIPE_WRITE		1#define STRIPE_READ		2struct raid5_data {	struct stripe_head	**stripe_hashtbl;	struct md_dev		*mddev;	struct md_thread	*thread, *resync_thread;	struct disk_info	disks[MD_SB_DISKS];	struct disk_info	*spare;	int			buffer_size;	int			chunk_size, level, algorithm;	int			raid_disks, working_disks, failed_disks;	int			sector_count;	unsigned long		next_sector;	atomic_t		nr_handle;	struct stripe_head	*next_free_stripe;	int			nr_stripes;	int			resync_parity;	int			max_nr_stripes;	int			clock;	int			nr_hashed_stripes;	int			nr_locked_stripes;	int			nr_pending_stripes;	int			nr_cached_stripes;	/*	 * Free stripes pool	 */	int			nr_free_sh;	struct stripe_head	*free_sh_list;	struct wait_queue	*wait_for_stripe;};#endif/* * Our supported algorithms */#define ALGORITHM_LEFT_ASYMMETRIC	0#define ALGORITHM_RIGHT_ASYMMETRIC	1#define ALGORITHM_LEFT_SYMMETRIC	2#define ALGORITHM_RIGHT_SYMMETRIC	3#endif

⌨️ 快捷键说明

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