Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup

Pull another cgroup fix from Tejun Heo:
"The cgroup writeback support got inadvertently enabled for traditional
hierarchies revealing two regressions which are currently being worked
on. It shouldn't have been enabled on traditional hierarchies, so
disable it on them. This is enough to make the regressions go away
for people who aren't experimenting with cgroup"

* 'for-4.3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
cgroup, writeback: don't enable cgroup writeback on traditional hierarchies

+9 -2
+9 -2
include/linux/backing-dev.h
··· 13 13 #include <linux/sched.h> 14 14 #include <linux/blkdev.h> 15 15 #include <linux/writeback.h> 16 + #include <linux/memcontrol.h> 16 17 #include <linux/blk-cgroup.h> 17 18 #include <linux/backing-dev-defs.h> 18 19 #include <linux/slab.h> ··· 253 252 * @inode: inode of interest 254 253 * 255 254 * cgroup writeback requires support from both the bdi and filesystem. 256 - * Test whether @inode has both. 255 + * Also, both memcg and iocg have to be on the default hierarchy. Test 256 + * whether all conditions are met. 257 + * 258 + * Note that the test result may change dynamically on the same inode 259 + * depending on how memcg and iocg are configured. 257 260 */ 258 261 static inline bool inode_cgwb_enabled(struct inode *inode) 259 262 { 260 263 struct backing_dev_info *bdi = inode_to_bdi(inode); 261 264 262 - return bdi_cap_account_dirty(bdi) && 265 + return cgroup_on_dfl(mem_cgroup_root_css->cgroup) && 266 + cgroup_on_dfl(blkcg_root_css->cgroup) && 267 + bdi_cap_account_dirty(bdi) && 263 268 (bdi->capabilities & BDI_CAP_CGROUP_WRITEBACK) && 264 269 (inode->i_sb->s_iflags & SB_I_CGROUPWB); 265 270 }