47f521ba18
Pull MD update from Shaohua Li: "This update mostly includes bug fixes: - md-cluster now supports raid10 from Guoqing - raid5 PPL fixes from Artur - badblock regression fix from Bo - suspend hang related fixes from Neil - raid5 reshape fixes from Neil - raid1 freeze deadlock fix from Nate - memleak fixes from Zdenek - bitmap related fixes from Me and Tao - other fixes and cleanups" * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md: (33 commits) md: free unused memory after bitmap resize md: release allocated bitset sync_set md/bitmap: clear BITMAP_WRITE_ERROR bit before writing it to sb md: be cautious about using ->curr_resync_completed for ->recovery_offset badblocks: fix wrong return value in badblocks_set if badblocks are disabled md: don't check MD_SB_CHANGE_CLEAN in md_allow_write md-cluster: update document for raid10 md: remove redundant variable q raid1: remove obsolete code in raid1_write_request md-cluster: Use a small window for raid10 resync md-cluster: Suspend writes in RAID10 if within range md-cluster/raid10: set "do_balance = 0" if area is resyncing md: use lockdep_assert_held raid1: prevent freeze_array/wait_all_barriers deadlock md: use TASK_IDLE instead of blocking signals md: remove special meaning of ->quiesce(.., 2) md: allow metadata update while suspending. md: use mddev_suspend/resume instead of ->quiesce() md: move suspend_hi/lo handling into core md code md: don't call bitmap_create() while array is quiesced. ...
33 lines
650 B
C
33 lines
650 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _MULTIPATH_H
|
|
#define _MULTIPATH_H
|
|
|
|
struct multipath_info {
|
|
struct md_rdev *rdev;
|
|
};
|
|
|
|
struct mpconf {
|
|
struct mddev *mddev;
|
|
struct multipath_info *multipaths;
|
|
int raid_disks;
|
|
spinlock_t device_lock;
|
|
struct list_head retry_list;
|
|
|
|
mempool_t *pool;
|
|
};
|
|
|
|
/*
|
|
* this is our 'private' 'collective' MULTIPATH buffer head.
|
|
* it contains information about what kind of IO operations were started
|
|
* for this MULTIPATH operation, and about their status:
|
|
*/
|
|
|
|
struct multipath_bh {
|
|
struct mddev *mddev;
|
|
struct bio *master_bio;
|
|
struct bio bio;
|
|
int path;
|
|
struct list_head retry_list;
|
|
};
|
|
#endif
|