mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-06 06:21:31 +00:00
buffer, writeback: make __block_write_full_page() honor cgroup writeback
[__]block_write_full_page() is used to implement ->writepage in various filesystems. All writeback logic is now updated to handle cgroup writeback and the block cgroup to issue IOs for is encoded in writeback_control and can be retrieved from the inode; however, [__]block_write_full_page() currently ignores the blkcg indicated by inode and issues all bio's without explicit blkcg association. This patch adds submit_bh_blkcg() which associates the bio with the specified blkio cgroup before issuing and uses it in __block_write_full_page() so that the issued bio's are associated with inode_to_wb_blkcg_css(inode). v2: Updated for per-inode wb association. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Jens Axboe <axboe@kernel.dk> Cc: Jan Kara <jack@suse.cz> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
0747259d13
commit
bafc0dba1e
2 changed files with 32 additions and 6 deletions
|
@ -393,6 +393,12 @@ static inline struct bdi_writeback *inode_to_wb(struct inode *inode)
|
|||
return inode->i_wb;
|
||||
}
|
||||
|
||||
static inline struct cgroup_subsys_state *
|
||||
inode_to_wb_blkcg_css(struct inode *inode)
|
||||
{
|
||||
return inode_to_wb(inode)->blkcg_css;
|
||||
}
|
||||
|
||||
struct wb_iter {
|
||||
int start_blkcg_id;
|
||||
struct radix_tree_iter tree_iter;
|
||||
|
@ -510,6 +516,12 @@ static inline void wb_blkcg_offline(struct blkcg *blkcg)
|
|||
{
|
||||
}
|
||||
|
||||
static inline struct cgroup_subsys_state *
|
||||
inode_to_wb_blkcg_css(struct inode *inode)
|
||||
{
|
||||
return blkcg_root_css;
|
||||
}
|
||||
|
||||
struct wb_iter {
|
||||
int next_id;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue