Skip to content

Commit

Permalink
xfs: implement cgroup aware writeback
Browse files Browse the repository at this point in the history
Link every newly allocated writeback bio to cgroup pointed to by the
writeback control structure, and charge every byte written back to it.

Tested-by: Stefan Priebe - Profihost AG <s.priebe@profihost.ag>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
  • Loading branch information
Christoph Hellwig authored and Darrick J. Wong committed Jun 29, 2019
1 parent a247373 commit adfb5fb
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
4 changes: 3 additions & 1 deletion fs/xfs/xfs_aops.c
Original file line number Diff line number Diff line change
Expand Up @@ -700,6 +700,7 @@ xfs_alloc_ioend(
bio->bi_iter.bi_sector = sector;
bio->bi_opf = REQ_OP_WRITE | wbc_to_write_flags(wbc);
bio->bi_write_hint = inode->i_write_hint;
wbc_init_bio(wbc, bio);

ioend = container_of(bio, struct xfs_ioend, io_inline_bio);
INIT_LIST_HEAD(&ioend->io_list);
Expand Down Expand Up @@ -727,7 +728,7 @@ xfs_chain_bio(
struct bio *new;

new = bio_alloc(GFP_NOFS, BIO_MAX_PAGES);
bio_copy_dev(new, prev);
bio_copy_dev(new, prev);/* also copies over blkcg information */
new->bi_iter.bi_sector = bio_end_sector(prev);
new->bi_opf = prev->bi_opf;
new->bi_write_hint = prev->bi_write_hint;
Expand Down Expand Up @@ -782,6 +783,7 @@ xfs_add_to_ioend(
}

wpc->ioend->io_size += len;
wbc_account_io(wbc, page, len);
}

STATIC void
Expand Down
2 changes: 2 additions & 0 deletions fs/xfs/xfs_super.c
Original file line number Diff line number Diff line change
Expand Up @@ -1676,6 +1676,8 @@ xfs_fs_fill_super(
sb->s_maxbytes = xfs_max_file_offset(sb->s_blocksize_bits);
sb->s_max_links = XFS_MAXLINK;
sb->s_time_gran = 1;
sb->s_iflags |= SB_I_CGROUPWB;

set_posix_acl_flag(sb);

/* version 5 superblocks support inode version counters. */
Expand Down

0 comments on commit adfb5fb

Please sign in to comment.