diff options
Diffstat (limited to 'include/linux/writeback.h')
| -rw-r--r-- | include/linux/writeback.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index e056a22075cf..8945aac31392 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
| @@ -78,6 +78,8 @@ struct writeback_control { | |||
| 78 | */ | 78 | */ |
| 79 | unsigned no_cgroup_owner:1; | 79 | unsigned no_cgroup_owner:1; |
| 80 | 80 | ||
| 81 | unsigned punt_to_cgroup:1; /* cgrp punting, see __REQ_CGROUP_PUNT */ | ||
| 82 | |||
| 81 | #ifdef CONFIG_CGROUP_WRITEBACK | 83 | #ifdef CONFIG_CGROUP_WRITEBACK |
| 82 | struct bdi_writeback *wb; /* wb this writeback is issued under */ | 84 | struct bdi_writeback *wb; /* wb this writeback is issued under */ |
| 83 | struct inode *inode; /* inode being written out */ | 85 | struct inode *inode; /* inode being written out */ |
| @@ -94,12 +96,17 @@ struct writeback_control { | |||
| 94 | 96 | ||
| 95 | static inline int wbc_to_write_flags(struct writeback_control *wbc) | 97 | static inline int wbc_to_write_flags(struct writeback_control *wbc) |
| 96 | { | 98 | { |
| 99 | int flags = 0; | ||
| 100 | |||
| 101 | if (wbc->punt_to_cgroup) | ||
| 102 | flags = REQ_CGROUP_PUNT; | ||
| 103 | |||
| 97 | if (wbc->sync_mode == WB_SYNC_ALL) | 104 | if (wbc->sync_mode == WB_SYNC_ALL) |
| 98 | return REQ_SYNC; | 105 | flags |= REQ_SYNC; |
| 99 | else if (wbc->for_kupdate || wbc->for_background) | 106 | else if (wbc->for_kupdate || wbc->for_background) |
| 100 | return REQ_BACKGROUND; | 107 | flags |= REQ_BACKGROUND; |
| 101 | 108 | ||
| 102 | return 0; | 109 | return flags; |
| 103 | } | 110 | } |
| 104 | 111 | ||
| 105 | static inline struct cgroup_subsys_state * | 112 | static inline struct cgroup_subsys_state * |
