diff options
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r-- | include/linux/blkdev.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index f2385ee7c7b2..3816ce8a08fc 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -51,7 +51,9 @@ typedef void (rq_end_io_fn)(struct request *, int); | |||
51 | 51 | ||
52 | struct request_list { | 52 | struct request_list { |
53 | struct request_queue *q; /* the queue this rl belongs to */ | 53 | struct request_queue *q; /* the queue this rl belongs to */ |
54 | 54 | #ifdef CONFIG_BLK_CGROUP | |
55 | struct blkcg_gq *blkg; /* blkg this request pool belongs to */ | ||
56 | #endif | ||
55 | /* | 57 | /* |
56 | * count[], starved[], and wait[] are indexed by | 58 | * count[], starved[], and wait[] are indexed by |
57 | * BLK_RW_SYNC/BLK_RW_ASYNC | 59 | * BLK_RW_SYNC/BLK_RW_ASYNC |
@@ -143,6 +145,7 @@ struct request { | |||
143 | struct hd_struct *part; | 145 | struct hd_struct *part; |
144 | unsigned long start_time; | 146 | unsigned long start_time; |
145 | #ifdef CONFIG_BLK_CGROUP | 147 | #ifdef CONFIG_BLK_CGROUP |
148 | struct request_list *rl; /* rl this rq is alloced from */ | ||
146 | unsigned long long start_time_ns; | 149 | unsigned long long start_time_ns; |
147 | unsigned long long io_start_time_ns; /* when passed to hardware */ | 150 | unsigned long long io_start_time_ns; /* when passed to hardware */ |
148 | #endif | 151 | #endif |
@@ -291,9 +294,12 @@ struct request_queue { | |||
291 | int nr_rqs_elvpriv; /* # allocated rqs w/ elvpriv */ | 294 | int nr_rqs_elvpriv; /* # allocated rqs w/ elvpriv */ |
292 | 295 | ||
293 | /* | 296 | /* |
294 | * the queue request freelist, one for reads and one for writes | 297 | * If blkcg is not used, @q->root_rl serves all requests. If blkcg |
298 | * is used, root blkg allocates from @q->root_rl and all other | ||
299 | * blkgs from their own blkg->rl. Which one to use should be | ||
300 | * determined using bio_request_list(). | ||
295 | */ | 301 | */ |
296 | struct request_list rq; | 302 | struct request_list root_rl; |
297 | 303 | ||
298 | request_fn_proc *request_fn; | 304 | request_fn_proc *request_fn; |
299 | make_request_fn *make_request_fn; | 305 | make_request_fn *make_request_fn; |