| /linux/drivers/md/ |
| H A D | md.c | 97 static int remove_and_add_spares(struct mddev *mddev, 99 static void mddev_detach(struct mddev *mddev); 136 static int speed_min(struct mddev *mddev) in speed_min() argument 138 return mddev->sync_speed_min ? in speed_min() 139 mddev->sync_speed_min : sysctl_speed_limit_min; in speed_min() 142 static int speed_max(struct mddev *mddev) in speed_max() argument 144 return mddev->sync_speed_max ? in speed_max() 145 mddev->sync_speed_max : sysctl_speed_limit_max; in speed_max() 148 static int sync_io_depth(struct mddev *mddev) in sync_io_depth() argument 150 return mddev->sync_io_depth ? in sync_io_depth() [all …]
|
| H A D | md.h | 138 struct mddev *mddev; /* RAID array if running */ member 405 struct mddev { struct 618 void (*sync_super)(struct mddev *mddev, struct md_rdev *rdev); argument 684 static inline bool md_is_rdwr(struct mddev *mddev) in md_is_rdwr() argument 686 return (mddev->ro == MD_RDWR); in md_is_rdwr() 689 static inline bool reshape_interrupted(struct mddev *mddev) in reshape_interrupted() argument 692 if (mddev->reshape_position == MaxSector) in reshape_interrupted() 696 if (!test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) in reshape_interrupted() 700 if (test_bit(MD_RECOVERY_WAIT, &mddev->recovery) || in reshape_interrupted() 701 test_bit(MD_RECOVERY_INTR, &mddev->recovery) || in reshape_interrupted() [all …]
|
| H A D | md-cluster.h | 9 struct mddev; 15 int (*join)(struct mddev *mddev, int nodes); 16 int (*leave)(struct mddev *mddev); 17 int (*slot_number)(struct mddev *mddev); 18 int (*resync_info_update)(struct mddev *mddev, sector_t lo, sector_t hi); 19 int (*resync_start_notify)(struct mddev *mddev); 20 int (*resync_status_get)(struct mddev *mddev); 21 void (*resync_info_get)(struct mddev *mddev, sector_t *lo, sector_t *hi); 22 int (*metadata_update_start)(struct mddev *mddev); 23 int (*metadata_update_finish)(struct mddev *mddev); [all …]
|
| H A D | md-bitmap.h | 80 typedef void (md_bitmap_fn)(struct mddev *mddev, sector_t offset, 87 int (*create)(struct mddev *mddev); 88 int (*resize)(struct mddev *mddev, sector_t blocks, int chunksize); 90 int (*load)(struct mddev *mddev); 91 void (*destroy)(struct mddev *mddev); 92 void (*flush)(struct mddev *mddev); 93 void (*write_all)(struct mddev *mddev); 94 void (*dirty_bits)(struct mddev *mddev, unsigned long s, 96 void (*unplug)(struct mddev *mddev, bool sync); 97 void (*daemon_work)(struct mddev *mddev); [all …]
|
| H A D | md-cluster.c | 28 struct mddev *mddev; /* pointing back to mddev. */ member 63 struct mddev *mddev; /* the md device which md_cluster_info belongs to */ member 159 struct mddev *mddev) in dlm_lock_sync_interruptible() argument 171 || test_bit(MD_CLOSING, &mddev->flags)); in dlm_lock_sync_interruptible() 192 static struct dlm_lock_resource *lockres_init(struct mddev *mddev, in lockres_init() argument 197 struct md_cluster_info *cinfo = mddev->cluster_info; in lockres_init() 205 res->mddev = mddev; in lockres_init() 277 static int read_resync_info(struct mddev *mddev, in read_resync_info() argument 281 struct md_cluster_info *cinfo = mddev->cluster_info; in read_resync_info() 297 struct mddev *mddev = thread->mddev; in recover_bitmaps() local [all …]
|
| H A D | md-linear.c | 30 static inline struct dev_info *which_dev(struct mddev *mddev, sector_t sector) in which_dev() argument 36 hi = mddev->raid_disks - 1; in which_dev() 37 conf = mddev->private; in which_dev() 55 static sector_t linear_size(struct mddev *mddev, sector_t sectors, int raid_disks) in linear_size() argument 60 conf = mddev->private; in linear_size() 68 static int linear_set_limits(struct mddev *mddev) in linear_set_limits() argument 74 lim.max_hw_sectors = mddev->chunk_sectors; in linear_set_limits() 75 lim.logical_block_size = mddev->logical_block_size; in linear_set_limits() 76 lim.max_write_zeroes_sectors = mddev->chunk_sectors; in linear_set_limits() 77 lim.max_hw_wzeroes_unmap_sectors = mddev->chunk_sectors; in linear_set_limits() [all …]
|
| H A D | md-llbitmap.c | 277 struct mddev *mddev; member 416 static void __llbitmap_flush(struct mddev *mddev); 435 bool level_456 = raid_is_456(llbitmap->mddev); in llbitmap_infect_dirty_bits() 468 if (llbitmap->mddev->degraded || !infect) { in llbitmap_set_page_dirty() 515 struct mddev *mddev = llbitmap->mddev; in llbitmap_read_page() local 528 rdev_for_each(rdev, mddev) { in llbitmap_read_page() 535 sector = mddev->bitmap_info.offset + in llbitmap_read_page() 542 md_error(mddev, rdev); in llbitmap_read_page() 552 struct mddev *mddev = llbitmap->mddev; in llbitmap_write_page() local 562 rdev_for_each(rdev, mddev) { in llbitmap_write_page() [all …]
|
| H A D | md-bitmap.c | 167 struct mddev *mddev; /* the md device that the bitmap is for */ member 226 return bitmap->mddev ? mdname(bitmap->mddev) : "mdX"; in bmname() 348 static int read_sb_page(struct mddev *mddev, loff_t offset, in read_sb_page() argument 352 sector_t sector = mddev->bitmap_info.offset + offset + in read_sb_page() 356 rdev_for_each(rdev, mddev) { in read_sb_page() 370 static struct md_rdev *next_active_rdev(struct md_rdev *rdev, struct mddev *mddev) in next_active_rdev() argument 388 rdev = list_entry(&mddev->disks, struct md_rdev, same_set); in next_active_rdev() 391 rdev_dec_pending(rdev, mddev); in next_active_rdev() 393 list_for_each_entry_continue_rcu(rdev, &mddev->disks, same_set) { in next_active_rdev() 432 struct mddev *mddev = bitmap->mddev; in __write_sb_page() local [all …]
|
| H A D | raid10.c | 74 static sector_t reshape_request(struct mddev *mddev, sector_t sector_nr, 76 static void reshape_request_write(struct mddev *mddev, struct r10bio *r10_bio); 144 if (test_bit(MD_RECOVERY_SYNC, &conf->mddev->recovery) || in r10buf_pool_alloc() 145 test_bit(MD_RECOVERY_RESHAPE, &conf->mddev->recovery)) in r10buf_pool_alloc() 191 &conf->mddev->recovery)) { in r10buf_pool_alloc() 277 struct r10conf *conf = r10_bio->mddev->private; in free_r10bio() 285 struct r10conf *conf = r10_bio->mddev->private; in put_buf() 301 struct mddev *mddev = r10_bio->mddev; in reschedule_retry() local 302 struct r10conf *conf = mddev->private; in reschedule_retry() 312 md_wakeup_thread(mddev->thread); in reschedule_retry() [all …]
|
| H A D | raid1.c | 49 static void raid1_free(struct mddev *mddev, void *priv); 92 struct mddev *mddev = rdev->mddev; in wait_for_serialization() local 95 if (WARN_ON(!mddev->serial_info_pool)) in wait_for_serialization() 97 si = mempool_alloc(mddev->serial_info_pool, GFP_NOIO); in wait_for_serialization() 112 struct mddev *mddev = rdev->mddev; in remove_serial() local 137 mempool_free(si, mddev->serial_info_pool); in remove_serial() 201 if (test_bit(MD_RECOVERY_REQUESTED, &conf->mddev->recovery)) in r1buf_pool_alloc() 276 struct r1conf *conf = r1_bio->mddev->private; in free_r1bio() 284 struct r1conf *conf = r1_bio->mddev->private; in put_buf() 291 rdev_dec_pending(conf->mirrors[i].rdev, r1_bio->mddev); in put_buf() [all …]
|
| H A D | dm-raid.c | 245 struct mddev md; 263 struct mddev *mddev = &rs->md; in rs_config_backup() local 265 l->new_level = mddev->new_level; in rs_config_backup() 266 l->new_layout = mddev->new_layout; in rs_config_backup() 267 l->new_chunk_sectors = mddev->new_chunk_sectors; in rs_config_backup() 272 struct mddev *mddev = &rs->md; in rs_config_restore() local 274 mddev->new_level = l->new_level; in rs_config_restore() 275 mddev->new_layout = l->new_layout; in rs_config_restore() 276 mddev->new_chunk_sectors = l->new_chunk_sectors; in rs_config_restore() 686 struct mddev *mddev = &rs->md; in rs_set_rdev_sectors() local [all …]
|
| H A D | raid5.c | 76 static void raid5_quiesce(struct mddev *mddev, int quiesce); 203 md_wakeup_thread(conf->mddev->thread); in raid5_wakeup_stripe_thread() 276 md_wakeup_thread(conf->mddev->thread); in do_release_stripe() 282 md_wakeup_thread(conf->mddev->thread); in do_release_stripe() 364 md_wakeup_thread(conf->mddev->thread); in release_inactive_stripe_list() 410 if (unlikely(!conf->mddev->thread) || in raid5_release_stripe() 415 md_wakeup_thread(conf->mddev->thread); in raid5_release_stripe() 751 int degraded = conf->mddev->degraded; in has_failed() 753 if (test_bit(MD_BROKEN, &conf->mddev->flags)) in has_failed() 756 if (conf->mddev->reshape_position != MaxSector) in has_failed() [all …]
|
| H A D | raid1-10.c | 128 static inline bool raid1_add_bio_to_plug(struct mddev *mddev, struct bio *bio, in raid1_add_bio_to_plug() argument 138 if (!md_bitmap_enabled(mddev, true)) { in raid1_add_bio_to_plug() 143 cb = blk_check_plugged(unplug, mddev, sizeof(*plug)); in raid1_add_bio_to_plug() 164 static inline void raid1_prepare_flush_writes(struct mddev *mddev) in raid1_prepare_flush_writes() argument 166 mddev->bitmap_ops->unplug(mddev, current->bio_list == NULL); in raid1_prepare_flush_writes() 174 static inline void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev) in check_decay_read_errors() argument 204 static inline bool exceed_read_errors(struct mddev *mddev, struct md_rdev *rdev) in exceed_read_errors() argument 206 int max_read_errors = atomic_read(&mddev->max_corr_read_errors); in exceed_read_errors() 209 check_decay_read_errors(mddev, rdev); in exceed_read_errors() 213 mdname(mddev), rdev->bdev, read_errors, max_read_errors); in exceed_read_errors() [all …]
|
| H A D | raid5-ppl.c | 88 struct mddev *mddev; member 408 md_error(ppl_conf->mddev, log->rdev); in ppl_log_endio() 551 struct r5conf *conf = ppl_conf->mddev->private; in ppl_io_unit_finished() 586 struct r5conf *conf = ppl_conf->mddev->private; in ppl_flush_endio() 594 rdev = md_find_rdev_rcu(conf->mddev, bio_dev(bio)); in ppl_flush_endio() 596 md_error(rdev->mddev, rdev); in ppl_flush_endio() 604 md_wakeup_thread(conf->mddev->thread); in ppl_flush_endio() 612 struct r5conf *conf = ppl_conf->mddev->private; in ppl_do_flush() 788 struct mddev *mddev = ppl_conf->mddev; in ppl_recover_entry() local 789 struct r5conf *conf = mddev->private; in ppl_recover_entry() [all …]
|
| H A D | raid5-log.h | 30 void r5c_update_on_rdev_error(struct mddev *mddev, struct md_rdev *rdev); 49 return test_bit(MD_HAS_JOURNAL, &conf->mddev->flags); in raid5_has_log() 54 return test_bit(MD_HAS_PPL, &conf->mddev->flags); in raid5_has_ppl()
|