#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/blkdev.h>
#include <linux/fault-inject.h>
#include "blk.h"
#include "blk-mq.h"
#ifdef CONFIG_FAIL_IO_TIMEOUT
static DECLARE_FAULT_ATTR(fail_io_timeout);
static int __init setup_fail_io_timeout(char *str)
{ … }
__setup(…);
bool __blk_should_fake_timeout(struct request_queue *q)
{ … }
EXPORT_SYMBOL_GPL(…);
static int __init fail_io_timeout_debugfs(void)
{ … }
late_initcall(fail_io_timeout_debugfs);
ssize_t part_timeout_show(struct device *dev, struct device_attribute *attr,
char *buf)
{ … }
ssize_t part_timeout_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{ … }
#endif
void blk_abort_request(struct request *req)
{ … }
EXPORT_SYMBOL_GPL(…);
static unsigned long blk_timeout_mask __read_mostly;
static int __init blk_timeout_init(void)
{ … }
late_initcall(blk_timeout_init);
static inline unsigned long blk_round_jiffies(unsigned long j)
{ … }
unsigned long blk_rq_timeout(unsigned long timeout)
{ … }
void blk_add_timer(struct request *req)
{ … }