Skip to content

Commit

Permalink
block: move make_it_fail to struct block_device
Browse files Browse the repository at this point in the history
Move the make_it_fail flag to struct block_device an turn it into a bool
in preparation of killing struct hd_struct.

Signed-off-by: Christoph Hellwig <[email protected]>
Reviewed-by: Jan Kara <[email protected]>
Reviewed-by: Hannes Reinecke <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
  • Loading branch information
Christoph Hellwig authored and axboe committed Dec 1, 2020
1 parent 1bdd5ae commit b309e99
Showing 4 changed files with 7 additions and 6 deletions.
3 changes: 2 additions & 1 deletion block/blk-core.c
Original file line number Diff line number Diff line change
@@ -668,7 +668,8 @@ __setup("fail_make_request=", setup_fail_make_request);

static bool should_fail_request(struct hd_struct *part, unsigned int bytes)
{
return part->make_it_fail && should_fail(&fail_make_request, bytes);
return part->bdev->bd_make_it_fail &&
should_fail(&fail_make_request, bytes);
}

static int __init fail_make_request_debugfs(void)
4 changes: 2 additions & 2 deletions block/genhd.c
Original file line number Diff line number Diff line change
@@ -1292,7 +1292,7 @@ ssize_t part_fail_show(struct device *dev,
{
struct hd_struct *p = dev_to_part(dev);

return sprintf(buf, "%d\n", p->make_it_fail);
return sprintf(buf, "%d\n", p->bdev->bd_make_it_fail);
}

ssize_t part_fail_store(struct device *dev,
@@ -1303,7 +1303,7 @@ ssize_t part_fail_store(struct device *dev,
int i;

if (count > 0 && sscanf(buf, "%d", &i) > 0)
p->make_it_fail = (i == 0) ? 0 : 1;
p->bdev->bd_make_it_fail = i;

return count;
}
3 changes: 3 additions & 0 deletions include/linux/blk_types.h
Original file line number Diff line number Diff line change
@@ -52,6 +52,9 @@ struct block_device {
struct super_block *bd_fsfreeze_sb;

struct partition_meta_info *bd_meta_info;
#ifdef CONFIG_FAIL_MAKE_REQUEST
bool bd_make_it_fail;
#endif
} __randomize_layout;

#define bdev_whole(_bdev) \
3 changes: 0 additions & 3 deletions include/linux/genhd.h
Original file line number Diff line number Diff line change
@@ -56,9 +56,6 @@ struct hd_struct {
struct block_device *bdev;
struct device __dev;
int policy, partno;
#ifdef CONFIG_FAIL_MAKE_REQUEST
int make_it_fail;
#endif
struct rcu_work rcu_work;
};

0 comments on commit b309e99

Please sign in to comment.