Hello, btrfs has different ways to issue metadata IOs and may end up issuing metadata or otherwise shared IOs from a non-root cgroup, which can lead to priority inversion and ineffective IO isolation.
This patchset makes sure that btrfs issues all metadata and shared IOs from the root cgroup by exempting btree_inodes from cgroup writeback and explicitly associating shared IOs with the root cgroup. This patchset containst he following three patches [PATCH 1/3] cgroup, writeback: replace SB_I_CGROUPWB with per-inode [PATCH 2/3] cgroup, writeback: implement submit_bh_blkcg_css() [PATCH 3/3] btrfs: ensure that metadata and flush are issued from the and is also available in the following git branch git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-cgroup-btrfs-metadata diffstat follows. Thanks. fs/block_dev.c | 3 +-- fs/btrfs/check-integrity.c | 2 +- fs/btrfs/disk-io.c | 4 ++++ fs/btrfs/ioctl.c | 6 +++++- fs/btrfs/super.c | 1 - fs/buffer.c | 12 ++++++++++++ fs/ext2/inode.c | 3 ++- fs/ext2/super.c | 1 - fs/ext4/inode.c | 5 ++++- fs/ext4/super.c | 2 -- fs/fs-writeback.c | 1 + include/linux/backing-dev.h | 2 +- include/linux/buffer_head.h | 11 +++++++++++ include/linux/fs.h | 3 ++- include/linux/writeback.h | 6 ++++-- 15 files changed, 48 insertions(+), 14 deletions(-) -- tejun