Lines Matching refs:disk
27 struct gendisk *disk = bio->bi_bdev->bd_disk; in __blk_error_inject() local
31 list_for_each_entry_rcu(inj, &disk->error_injection_list, entry) { in __blk_error_inject()
49 disk->part0, blk_status_to_str(inj->status), in __blk_error_inject()
61 static int error_inject_add(struct gendisk *disk, enum req_op op, in error_inject_add() argument
91 disk->part0, blk_status_to_str(status), in error_inject_add()
100 mutex_lock(&disk->error_injection_lock); in error_inject_add()
101 if (!disk_live(disk)) { in error_inject_add()
102 mutex_unlock(&disk->error_injection_lock); in error_inject_add()
106 if (list_empty(&disk->error_injection_list)) in error_inject_add()
108 list_add_rcu(&inj->entry, &disk->error_injection_list); in error_inject_add()
109 set_bit(GD_ERROR_INJECT, &disk->state); in error_inject_add()
110 mutex_unlock(&disk->error_injection_lock); in error_inject_add()
118 static void error_inject_removeall(struct gendisk *disk) in error_inject_removeall() argument
122 mutex_lock(&disk->error_injection_lock); in error_inject_removeall()
123 if (test_and_clear_bit(GD_ERROR_INJECT, &disk->state)) in error_inject_removeall()
125 while ((inj = list_first_entry_or_null(&disk->error_injection_list, in error_inject_removeall()
130 mutex_unlock(&disk->error_injection_lock); in error_inject_removeall()
185 static ssize_t blk_error_injection_parse_options(struct gendisk *disk, in blk_error_injection_parse_options() argument
242 return error_inject_add(disk, op, start, nr_sectors, status, in blk_error_injection_parse_options()
247 error_inject_removeall(disk); in blk_error_injection_parse_options()
257 struct gendisk *disk = file_inode(file)->i_private; in blk_error_injection_write() local
264 error = blk_error_injection_parse_options(disk, options); in blk_error_injection_write()
274 struct gendisk *disk = s->private; in blk_error_injection_show() local
278 list_for_each_entry_rcu(inj, &disk->error_injection_list, entry) { in blk_error_injection_show()
307 void blk_error_injection_init(struct gendisk *disk) in blk_error_injection_init() argument
309 debugfs_create_file("error_injection", 0600, disk->queue->debugfs_dir, in blk_error_injection_init()
310 disk, &blk_error_injection_fops); in blk_error_injection_init()
313 void blk_error_injection_exit(struct gendisk *disk) in blk_error_injection_exit() argument
315 error_inject_removeall(disk); in blk_error_injection_exit()