Skip to content

Commit

Permalink
md/raid5: Move stripe_request_ctx up
Browse files Browse the repository at this point in the history
Move stripe_request_ctx up. No functional changes intended.

This will be necessary in the next patch to release the batch_last
in the context before sleeping.

Signed-off-by: Logan Gunthorpe <[email protected]>
Signed-off-by: Song Liu <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
  • Loading branch information
lsgunth authored and axboe committed Aug 3, 2022
1 parent 9734fe7 commit df6b0e2
Showing 1 changed file with 27 additions and 27 deletions.
54 changes: 27 additions & 27 deletions drivers/md/raid5.c
Original file line number Diff line number Diff line change
Expand Up @@ -755,6 +755,33 @@ static bool has_failed(struct r5conf *conf)
return degraded > conf->max_degraded;
}

enum stripe_result {
STRIPE_SUCCESS = 0,
STRIPE_RETRY,
STRIPE_SCHEDULE_AND_RETRY,
STRIPE_FAIL,
};

struct stripe_request_ctx {
/* a reference to the last stripe_head for batching */
struct stripe_head *batch_last;

/* first sector in the request */
sector_t first_sector;

/* last sector in the request */
sector_t last_sector;

/*
* bitmap to track stripe sectors that have been added to stripes
* add one to account for unaligned requests
*/
DECLARE_BITMAP(sectors_to_do, RAID5_MAX_REQ_STRIPES + 1);

/* the request had REQ_PREFLUSH, cleared after the first stripe_head */
bool do_flush;
};

/*
* Block until another thread clears R5_INACTIVE_BLOCKED or
* there are fewer than 3/4 the maximum number of active stripes
Expand Down Expand Up @@ -5874,33 +5901,6 @@ static bool stripe_ahead_of_reshape(struct mddev *mddev, struct r5conf *conf,
return ret;
}

enum stripe_result {
STRIPE_SUCCESS = 0,
STRIPE_RETRY,
STRIPE_SCHEDULE_AND_RETRY,
STRIPE_FAIL,
};

struct stripe_request_ctx {
/* a reference to the last stripe_head for batching */
struct stripe_head *batch_last;

/* first sector in the request */
sector_t first_sector;

/* last sector in the request */
sector_t last_sector;

/*
* bitmap to track stripe sectors that have been added to stripes
* add one to account for unaligned requests
*/
DECLARE_BITMAP(sectors_to_do, RAID5_MAX_REQ_STRIPES + 1);

/* the request had REQ_PREFLUSH, cleared after the first stripe_head */
bool do_flush;
};

static int add_all_stripe_bios(struct r5conf *conf,
struct stripe_request_ctx *ctx, struct stripe_head *sh,
struct bio *bi, int forwrite, int previous)
Expand Down

0 comments on commit df6b0e2

Please sign in to comment.