aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/writeback.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/writeback.h')
-rw-r--r--include/linux/writeback.h13
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
95static inline int wbc_to_write_flags(struct writeback_control *wbc) 97static 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
105static inline struct cgroup_subsys_state * 112static inline struct cgroup_subsys_state *