Merge tag 'for-linus-20181102' of git://git.kernel.dk/linux-block
Pull block layer fixes from Jens Axboe: "The biggest part of this pull request is the revert of the blkcg cleanup series. It had one fix earlier for a stacked device issue, but another one was reported. Rather than play whack-a-mole with this, revert the entire series and try again for the next kernel release. Apart from that, only small fixes/changes. Summary: - Indentation fixup for mtip32xx (Colin Ian King) - The blkcg cleanup series revert (Dennis Zhou) - Two NVMe fixes. One fixing a regression in the nvme request initialization in this merge window, causing nvme-fc to not work. The other is a suspend/resume p2p resource issue (James, Keith) - Fix sg discard merge, allowing us to merge in cases where we didn't before (Jianchao Wang) - Call rq_qos_exit() after the queue is frozen, preventing a hang (Ming) - Fix brd queue setup, fixing an oops if we fail setting up all devices (Ming)" * tag 'for-linus-20181102' of git://git.kernel.dk/linux-block: nvme-pci: fix conflicting p2p resource adds nvme-fc: fix request private initialization blkcg: revert blkcg cleanups series block: brd: associate with queue until adding disk block: call rq_qos_exit() after queue is frozen mtip32xx: clean an indentation issue, remove extraneous tabs block: fix the DISCARD request merge
This commit is contained in:
@@ -493,7 +493,7 @@ static struct cgroup_subsys_state *cgroup_tryget_css(struct cgroup *cgrp,
|
||||
}
|
||||
|
||||
/**
|
||||
* cgroup_e_css_by_mask - obtain a cgroup's effective css for the specified ss
|
||||
* cgroup_e_css - obtain a cgroup's effective css for the specified subsystem
|
||||
* @cgrp: the cgroup of interest
|
||||
* @ss: the subsystem of interest (%NULL returns @cgrp->self)
|
||||
*
|
||||
@@ -502,8 +502,8 @@ static struct cgroup_subsys_state *cgroup_tryget_css(struct cgroup *cgrp,
|
||||
* enabled. If @ss is associated with the hierarchy @cgrp is on, this
|
||||
* function is guaranteed to return non-NULL css.
|
||||
*/
|
||||
static struct cgroup_subsys_state *cgroup_e_css_by_mask(struct cgroup *cgrp,
|
||||
struct cgroup_subsys *ss)
|
||||
static struct cgroup_subsys_state *cgroup_e_css(struct cgroup *cgrp,
|
||||
struct cgroup_subsys *ss)
|
||||
{
|
||||
lockdep_assert_held(&cgroup_mutex);
|
||||
|
||||
@@ -523,35 +523,6 @@ static struct cgroup_subsys_state *cgroup_e_css_by_mask(struct cgroup *cgrp,
|
||||
return cgroup_css(cgrp, ss);
|
||||
}
|
||||
|
||||
/**
|
||||
* cgroup_e_css - obtain a cgroup's effective css for the specified subsystem
|
||||
* @cgrp: the cgroup of interest
|
||||
* @ss: the subsystem of interest
|
||||
*
|
||||
* Find and get the effective css of @cgrp for @ss. The effective css is
|
||||
* defined as the matching css of the nearest ancestor including self which
|
||||
* has @ss enabled. If @ss is not mounted on the hierarchy @cgrp is on,
|
||||
* the root css is returned, so this function always returns a valid css.
|
||||
*
|
||||
* The returned css is not guaranteed to be online, and therefore it is the
|
||||
* callers responsiblity to tryget a reference for it.
|
||||
*/
|
||||
struct cgroup_subsys_state *cgroup_e_css(struct cgroup *cgrp,
|
||||
struct cgroup_subsys *ss)
|
||||
{
|
||||
struct cgroup_subsys_state *css;
|
||||
|
||||
do {
|
||||
css = cgroup_css(cgrp, ss);
|
||||
|
||||
if (css)
|
||||
return css;
|
||||
cgrp = cgroup_parent(cgrp);
|
||||
} while (cgrp);
|
||||
|
||||
return init_css_set.subsys[ss->id];
|
||||
}
|
||||
|
||||
/**
|
||||
* cgroup_get_e_css - get a cgroup's effective css for the specified subsystem
|
||||
* @cgrp: the cgroup of interest
|
||||
@@ -634,11 +605,10 @@ EXPORT_SYMBOL_GPL(of_css);
|
||||
*
|
||||
* Should be called under cgroup_[tree_]mutex.
|
||||
*/
|
||||
#define for_each_e_css(css, ssid, cgrp) \
|
||||
for ((ssid) = 0; (ssid) < CGROUP_SUBSYS_COUNT; (ssid)++) \
|
||||
if (!((css) = cgroup_e_css_by_mask(cgrp, \
|
||||
cgroup_subsys[(ssid)]))) \
|
||||
; \
|
||||
#define for_each_e_css(css, ssid, cgrp) \
|
||||
for ((ssid) = 0; (ssid) < CGROUP_SUBSYS_COUNT; (ssid)++) \
|
||||
if (!((css) = cgroup_e_css(cgrp, cgroup_subsys[(ssid)]))) \
|
||||
; \
|
||||
else
|
||||
|
||||
/**
|
||||
@@ -1037,7 +1007,7 @@ static struct css_set *find_existing_css_set(struct css_set *old_cset,
|
||||
* @ss is in this hierarchy, so we want the
|
||||
* effective css from @cgrp.
|
||||
*/
|
||||
template[i] = cgroup_e_css_by_mask(cgrp, ss);
|
||||
template[i] = cgroup_e_css(cgrp, ss);
|
||||
} else {
|
||||
/*
|
||||
* @ss is not in this hierarchy, so we don't want
|
||||
@@ -3054,7 +3024,7 @@ static int cgroup_apply_control(struct cgroup *cgrp)
|
||||
return ret;
|
||||
|
||||
/*
|
||||
* At this point, cgroup_e_css_by_mask() results reflect the new csses
|
||||
* At this point, cgroup_e_css() results reflect the new csses
|
||||
* making the following cgroup_update_dfl_csses() properly update
|
||||
* css associations of all tasks in the subtree.
|
||||
*/
|
||||
|
@@ -764,9 +764,9 @@ blk_trace_bio_get_cgid(struct request_queue *q, struct bio *bio)
|
||||
if (!bt || !(blk_tracer_flags.val & TRACE_BLK_OPT_CGROUP))
|
||||
return NULL;
|
||||
|
||||
if (!bio->bi_blkg)
|
||||
if (!bio->bi_css)
|
||||
return NULL;
|
||||
return cgroup_get_kernfs_id(bio_blkcg(bio)->css.cgroup);
|
||||
return cgroup_get_kernfs_id(bio->bi_css->cgroup);
|
||||
}
|
||||
#else
|
||||
static union kernfs_node_id *
|
||||
|
Reference in New Issue
Block a user