Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b566fa5 authored by Tejun Heo's avatar Tejun Heo Committed by Jens Axboe
Browse files

block: remove ioc_*_changed()



After the previous patch to cfq, there's no ioc_get_changed() user
left.  This patch yanks out ioc_{ioprio|cgroup|get}_changed() and all
related stuff.

Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Cc: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 598971bf
Loading
Loading
Loading
Loading
+0 −19
Original line number Diff line number Diff line
@@ -47,8 +47,6 @@ static struct cgroup_subsys_state *blkiocg_create(struct cgroup_subsys *,
						  struct cgroup *);
static int blkiocg_can_attach(struct cgroup_subsys *, struct cgroup *,
			      struct cgroup_taskset *);
static void blkiocg_attach(struct cgroup_subsys *, struct cgroup *,
			   struct cgroup_taskset *);
static int blkiocg_pre_destroy(struct cgroup_subsys *, struct cgroup *);
static void blkiocg_destroy(struct cgroup_subsys *, struct cgroup *);
static int blkiocg_populate(struct cgroup_subsys *, struct cgroup *);
@@ -63,7 +61,6 @@ struct cgroup_subsys blkio_subsys = {
	.name = "blkio",
	.create = blkiocg_create,
	.can_attach = blkiocg_can_attach,
	.attach = blkiocg_attach,
	.pre_destroy = blkiocg_pre_destroy,
	.destroy = blkiocg_destroy,
	.populate = blkiocg_populate,
@@ -1729,22 +1726,6 @@ static int blkiocg_can_attach(struct cgroup_subsys *ss, struct cgroup *cgrp,
	return ret;
}

static void blkiocg_attach(struct cgroup_subsys *ss, struct cgroup *cgrp,
			   struct cgroup_taskset *tset)
{
	struct task_struct *task;
	struct io_context *ioc;

	cgroup_taskset_for_each(task, cgrp, tset) {
		/* we don't lose anything even if ioc allocation fails */
		ioc = get_task_io_context(task, GFP_ATOMIC, NUMA_NO_NODE);
		if (ioc) {
			ioc_cgroup_changed(ioc);
			put_io_context(ioc);
		}
	}
}

static void blkcg_bypass_start(void)
	__acquires(&all_q_mutex)
{
+0 −68
Original line number Diff line number Diff line
@@ -388,74 +388,6 @@ struct io_cq *ioc_create_icq(struct io_context *ioc, struct request_queue *q,
	return icq;
}

void ioc_set_icq_flags(struct io_context *ioc, unsigned int flags)
{
	struct io_cq *icq;
	struct hlist_node *n;

	hlist_for_each_entry(icq, n, &ioc->icq_list, ioc_node)
		icq->flags |= flags;
}

/**
 * ioc_ioprio_changed - notify ioprio change
 * @ioc: io_context of interest
 * @ioprio: new ioprio
 *
 * @ioc's ioprio has changed to @ioprio.  Set %ICQ_IOPRIO_CHANGED for all
 * icq's.  iosched is responsible for checking the bit and applying it on
 * request issue path.
 */
void ioc_ioprio_changed(struct io_context *ioc, int ioprio)
{
	unsigned long flags;

	spin_lock_irqsave(&ioc->lock, flags);
	ioc->ioprio = ioprio;
	ioc_set_icq_flags(ioc, ICQ_IOPRIO_CHANGED);
	spin_unlock_irqrestore(&ioc->lock, flags);
}

/**
 * ioc_cgroup_changed - notify cgroup change
 * @ioc: io_context of interest
 *
 * @ioc's cgroup has changed.  Set %ICQ_CGROUP_CHANGED for all icq's.
 * iosched is responsible for checking the bit and applying it on request
 * issue path.
 */
void ioc_cgroup_changed(struct io_context *ioc)
{
	unsigned long flags;

	spin_lock_irqsave(&ioc->lock, flags);
	ioc_set_icq_flags(ioc, ICQ_CGROUP_CHANGED);
	spin_unlock_irqrestore(&ioc->lock, flags);
}
EXPORT_SYMBOL(ioc_cgroup_changed);

/**
 * icq_get_changed - fetch and clear icq changed mask
 * @icq: icq of interest
 *
 * Fetch and clear ICQ_*_CHANGED bits from @icq.  Grabs and releases
 * @icq->ioc->lock.
 */
unsigned icq_get_changed(struct io_cq *icq)
{
	unsigned int changed = 0;
	unsigned long flags;

	if (unlikely(icq->flags & ICQ_CHANGED_MASK)) {
		spin_lock_irqsave(&icq->ioc->lock, flags);
		changed = icq->flags & ICQ_CHANGED_MASK;
		icq->flags &= ~ICQ_CHANGED_MASK;
		spin_unlock_irqrestore(&icq->ioc->lock, flags);
	}
	return changed;
}
EXPORT_SYMBOL(icq_get_changed);

static int __init blk_ioc_init(void)
{
	iocontext_cachep = kmem_cache_create("blkdev_ioc",
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ int set_task_ioprio(struct task_struct *task, int ioprio)

	ioc = get_task_io_context(task, GFP_ATOMIC, NUMA_NO_NODE);
	if (ioc) {
		ioc_ioprio_changed(ioc, ioprio);
		ioc->ioprio = ioprio;
		put_io_context(ioc);
	}

+0 −7
Original line number Diff line number Diff line
@@ -6,11 +6,7 @@
#include <linux/workqueue.h>

enum {
	ICQ_IOPRIO_CHANGED	= 1 << 0,
	ICQ_CGROUP_CHANGED	= 1 << 1,
	ICQ_EXITED		= 1 << 2,

	ICQ_CHANGED_MASK	= ICQ_IOPRIO_CHANGED | ICQ_CGROUP_CHANGED,
};

/*
@@ -152,9 +148,6 @@ void put_io_context_active(struct io_context *ioc);
void exit_io_context(struct task_struct *task);
struct io_context *get_task_io_context(struct task_struct *task,
				       gfp_t gfp_flags, int node);
void ioc_ioprio_changed(struct io_context *ioc, int ioprio);
void ioc_cgroup_changed(struct io_context *ioc);
unsigned int icq_get_changed(struct io_cq *icq);
#else
struct io_context;
static inline void put_io_context(struct io_context *ioc) { }