stripe_head
struct stripe_head *sh;
struct stripe_head, log_list);
struct stripe_head *sh;
struct stripe_head, r5c);
struct stripe_head *sh;
struct stripe_head, log_list);
void r5l_stripe_write_finished(struct stripe_head *sh)
static void r5c_flush_stripe(struct r5conf *conf, struct stripe_head *sh)
struct stripe_head *sh, *next;
struct stripe_head *sh;
struct stripe_head *sh,
struct stripe_head *sh,
static void r5l_recovery_reset_stripe(struct stripe_head *sh)
struct stripe_head *sh,
static struct stripe_head *
struct stripe_head *sh;
static struct stripe_head *
struct stripe_head *sh;
struct stripe_head *sh, *next;
struct stripe_head *sh, *next;
struct stripe_head *sh;
struct stripe_head *sh)
struct stripe_head *sh;
struct stripe_head *sh;
struct stripe_head *sh, *next;
struct stripe_head *sh,
void r5c_release_extra_page(struct stripe_head *sh)
void r5c_use_extra_page(struct stripe_head *sh)
struct stripe_head *sh,
int r5c_cache_data(struct r5l_log *log, struct stripe_head *sh)
struct stripe_head *sh, int disks)
void r5c_make_stripe_write_out(struct stripe_head *sh)
static void r5c_handle_data_cached(struct stripe_head *sh)
static void r5c_handle_parity_cached(struct stripe_head *sh)
static void r5c_finish_cache_stripe(struct stripe_head *sh)
struct stripe_head *sh, *next;
static int r5l_log_stripe(struct r5l_log *log, struct stripe_head *sh,
struct stripe_head *sh)
int r5l_write_stripe(struct r5l_log *log, struct stripe_head *sh)
void r5l_stripe_write_finished(struct stripe_head *sh);
int r5c_try_caching_write(struct r5conf *conf, struct stripe_head *sh,
void r5c_finish_stripe_write_out(struct r5conf *conf, struct stripe_head *sh,
void r5c_release_extra_page(struct stripe_head *sh);
void r5c_use_extra_page(struct stripe_head *sh);
struct stripe_head *sh, int disks);
int r5c_cache_data(struct r5l_log *log, struct stripe_head *sh);
void r5c_make_stripe_write_out(struct stripe_head *sh);
ops_run_partial_parity(struct stripe_head *sh, struct raid5_percpu *percpu,
int ppl_write_stripe(struct r5conf *conf, struct stripe_head *sh);
void ppl_stripe_write_finished(struct stripe_head *sh);
static inline int log_stripe(struct stripe_head *sh, struct stripe_head_state *s)
int r5l_write_stripe(struct r5l_log *log, struct stripe_head *head_sh);
static inline void log_stripe_write_finished(struct stripe_head *sh)
ops_run_partial_parity(struct stripe_head *sh, struct raid5_percpu *percpu,
struct stripe_head *sh)
static int ppl_log_stripe(struct ppl_log *log, struct stripe_head *sh)
struct stripe_head *sh_last = list_last_entry(
&io->stripe_list, struct stripe_head, log_list);
int ppl_write_stripe(struct r5conf *conf, struct stripe_head *sh)
struct stripe_head *sh, *next;
struct stripe_head *sh;
struct stripe_head *sh;
struct stripe_head, log_list);
void ppl_stripe_write_finished(struct stripe_head *sh)
struct stripe_head sh;
static int use_new_offset(struct r5conf *conf, struct stripe_head *sh)
static void ops_run_io(struct stripe_head *sh, struct stripe_head_state *s)
struct stripe_head *head_sh = sh;
static inline int raid6_d0(struct stripe_head *sh)
sh = list_first_entry(&sh->batch_list, struct stripe_head,
struct stripe_head *sh, int no_skipcopy)
struct stripe_head *sh = stripe_head_ref;
static int raid6_idx_to_slot(int idx, struct stripe_head *sh,
static void ops_run_biofill(struct stripe_head *sh)
static void mark_target_uptodate(struct stripe_head *sh, int target)
struct stripe_head *sh = stripe_head_ref;
static addr_conv_t *to_addr_conv(struct stripe_head *sh,
to_addr_offs(struct stripe_head *sh, struct raid5_percpu *percpu)
ops_run_compute5(struct stripe_head *sh, struct raid5_percpu *percpu)
struct stripe_head *sh,
static int stripe_operations_active(struct stripe_head *sh)
ops_run_compute6_1(struct stripe_head *sh, struct raid5_percpu *percpu)
static bool stripe_is_lowprio(struct stripe_head *sh)
ops_run_compute6_2(struct stripe_head *sh, struct raid5_percpu *percpu)
static void raid5_wakeup_stripe_thread(struct stripe_head *sh)
struct stripe_head *sh = stripe_head_ref;
ops_run_prexor5(struct stripe_head *sh, struct raid5_percpu *percpu,
ops_run_prexor6(struct stripe_head *sh, struct raid5_percpu *percpu,
ops_run_biodrain(struct stripe_head *sh, struct dma_async_tx_descriptor *tx)
struct stripe_head *head_sh = sh;
struct stripe_head,
struct stripe_head *sh = stripe_head_ref;
ops_run_reconstruct5(struct stripe_head *sh, struct raid5_percpu *percpu,
struct stripe_head *head_sh = sh;
struct stripe_head, batch_list) == head_sh;
sh = list_first_entry(&sh->batch_list, struct stripe_head,
ops_run_reconstruct6(struct stripe_head *sh, struct raid5_percpu *percpu,
struct stripe_head *head_sh = sh;
struct stripe_head, batch_list) == head_sh;
sh = list_first_entry(&sh->batch_list, struct stripe_head,
struct stripe_head *sh = stripe_head_ref;
static void ops_run_check_p(struct stripe_head *sh, struct raid5_percpu *percpu)
static void do_release_stripe(struct r5conf *conf, struct stripe_head *sh,
static void ops_run_check_pq(struct stripe_head *sh, struct raid5_percpu *percpu, int checkp)
static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request)
static void free_stripe(struct kmem_cache *sc, struct stripe_head *sh)
static struct stripe_head *alloc_stripe(struct kmem_cache *sc, gfp_t gfp,
struct stripe_head *sh;
struct stripe_head *sh;
struct_size_t(struct stripe_head, dev, devs),
struct stripe_head *osh, *nsh;
struct_size_t(struct stripe_head, dev, newsize),
nsh = list_entry(newstripes.next, struct stripe_head, lru);
nsh = list_entry(newstripes.next, struct stripe_head, lru);
struct stripe_head *sh;
struct stripe_head *sh = bi->bi_private;
struct stripe_head *sh = bi->bi_private;
struct stripe_head *sh)
static void __release_stripe(struct r5conf *conf, struct stripe_head *sh,
sector_t raid5_compute_blocknr(struct stripe_head *sh, int i, int previous)
struct stripe_head sh2;
schedule_reconstruction(struct stripe_head *sh, struct stripe_head_state *s,
static bool stripe_bio_overlaps(struct stripe_head *sh, struct bio *bi,
static void __add_stripe_bio(struct stripe_head *sh, struct bio *bi,
static bool add_stripe_bio(struct stripe_head *sh, struct bio *bi,
struct stripe_head *sh)
handle_failed_stripe(struct r5conf *conf, struct stripe_head *sh,
handle_failed_sync(struct r5conf *conf, struct stripe_head *sh,
struct stripe_head *sh, *t;
static int want_replace(struct stripe_head *sh, int disk_idx)
static int need_this_block(struct stripe_head *sh, struct stripe_head_state *s,
static int fetch_block(struct stripe_head *sh, struct stripe_head_state *s,
static void handle_stripe_fill(struct stripe_head *sh,
void raid5_release_stripe(struct stripe_head *sh)
static void break_stripe_batch_list(struct stripe_head *head_sh,
struct stripe_head *sh, int disks)
struct stripe_head *head_sh = sh;
struct stripe_head,
struct stripe_head, batch_list);
struct stripe_head *sh,
static inline void remove_hash(struct stripe_head *sh)
static void handle_parity_checks5(struct r5conf *conf, struct stripe_head *sh,
static inline void insert_hash(struct r5conf *conf, struct stripe_head *sh)
static void handle_parity_checks6(struct r5conf *conf, struct stripe_head *sh,
static struct stripe_head *get_free_stripe(struct r5conf *conf, int hash)
struct stripe_head *sh = NULL;
sh = list_entry(first, struct stripe_head, lru);
static void handle_stripe_expansion(struct r5conf *conf, struct stripe_head *sh)
struct stripe_head *sh2;
static void analyse_stripe(struct stripe_head *sh, struct stripe_head_state *s)
static void free_stripe_pages(struct stripe_head *sh)
static int clear_batch_ready(struct stripe_head *sh)
struct stripe_head *tmp;
static int alloc_stripe_pages(struct stripe_head *sh, gfp_t gfp)
static void break_stripe_batch_list(struct stripe_head *head_sh,
struct stripe_head *sh, *next;
static void handle_stripe(struct stripe_head *sh)
init_stripe_shared_pages(struct stripe_head *sh, struct r5conf *conf, int disks)
struct stripe_head *sh_src
static void shrink_buffers(struct stripe_head *sh)
struct stripe_head *sh;
sh = list_entry(l, struct stripe_head, lru);
struct stripe_head *sh = list_entry(head.next, struct stripe_head, lru);
static int grow_buffers(struct stripe_head *sh, gfp_t gfp)
static struct stripe_head *__get_priority_stripe(struct r5conf *conf, int group)
struct stripe_head *sh, *tmp;
struct stripe_head *sh;
sh = list_first_entry(&cb->list, struct stripe_head, lru);
struct stripe_head *sh)
struct stripe_head *sh;
struct stripe_head *sh);
static void init_stripe(struct stripe_head *sh, sector_t sector, int previous)
struct stripe_head *sh)
struct stripe_request_ctx *ctx, struct stripe_head *sh,
struct stripe_head *sh;
struct stripe_head sh;
static struct stripe_head *__find_stripe(struct r5conf *conf, sector_t sector,
struct stripe_head *sh;
struct stripe_head *sh;
static struct stripe_head *find_get_stripe(struct r5conf *conf,
struct stripe_head *sh;
sh = list_entry(stripes.next, struct stripe_head, lru);
struct stripe_head *sh;
struct stripe_head *sh;
struct stripe_head *batch[MAX_STRIPE_BATCH], *sh;
struct stripe_head *batch_last;
memory = conf->min_nr_stripes * (sizeof(struct stripe_head) +
struct stripe_head *raid5_get_active_stripe(struct r5conf *conf,
struct stripe_head *sh;
static bool is_full_stripe_write(struct stripe_head *sh)
static void lock_two_stripes(struct stripe_head *sh1, struct stripe_head *sh2)
static void unlock_two_stripes(struct stripe_head *sh1, struct stripe_head *sh2)
static bool stripe_can_batch(struct stripe_head *sh)
struct stripe_head *sh, struct stripe_head *last_sh)
struct stripe_head *head;
struct stripe_head *batch_head; /* protected by stripe lock */
static inline int raid5_get_page_offset(struct stripe_head *sh, int disk_idx)
raid5_get_dev_page(struct stripe_head *sh, int disk_idx)
sector_t raid5_compute_blocknr(struct stripe_head *sh, int i, int previous);
void raid5_release_stripe(struct stripe_head *sh);
int previous, int *dd_idx, struct stripe_head *sh);
struct stripe_head *raid5_get_active_stripe(struct r5conf *conf,