]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - block/blk-cgroup.h
blkcg: drop unnecessary RCU locking
[mirror_ubuntu-hirsute-kernel.git] / block / blk-cgroup.h
index 83ce5fa0a6043b53d31dee61b33566a5a0c07648..66eaefefcbd2ff2ce96b7c1143b4c81b04be5aab 100644 (file)
@@ -176,15 +176,13 @@ struct blkg_policy_data {
 };
 
 struct blkio_group {
-       /* Pointer to the associated request_queue, RCU protected */
-       struct request_queue __rcu *q;
-       struct list_head q_node[BLKIO_NR_POLICIES];
+       /* Pointer to the associated request_queue */
+       struct request_queue *q;
+       struct list_head q_node;
        struct hlist_node blkcg_node;
        struct blkio_cgroup *blkcg;
        /* Store cgroup path */
        char path[128];
-       /* policy which owns this blk group */
-       enum blkio_policy_id plid;
        /* reference count */
        int refcnt;
 
@@ -230,8 +228,9 @@ extern void blkcg_exit_queue(struct request_queue *q);
 /* Blkio controller policy registration */
 extern void blkio_policy_register(struct blkio_policy_type *);
 extern void blkio_policy_unregister(struct blkio_policy_type *);
-extern void blkg_destroy_all(struct request_queue *q,
-                            enum blkio_policy_id plid, bool destroy_root);
+extern void blkg_destroy_all(struct request_queue *q, bool destroy_root);
+extern void update_root_blkg_pd(struct request_queue *q,
+                               enum blkio_policy_id plid);
 
 /**
  * blkg_to_pdata - get policy private data
@@ -313,8 +312,9 @@ static inline void blkcg_exit_queue(struct request_queue *q) { }
 static inline void blkio_policy_register(struct blkio_policy_type *blkiop) { }
 static inline void blkio_policy_unregister(struct blkio_policy_type *blkiop) { }
 static inline void blkg_destroy_all(struct request_queue *q,
-                                   enum blkio_policy_id plid,
                                    bool destory_root) { }
+static inline void update_root_blkg_pd(struct request_queue *q,
+                                      enum blkio_policy_id plid) { }
 
 static inline void *blkg_to_pdata(struct blkio_group *blkg,
                                struct blkio_policy_type *pol) { return NULL; }
@@ -380,10 +380,8 @@ static inline void blkiocg_set_start_empty_time(struct blkio_group *blkg,
 extern struct blkio_cgroup blkio_root_cgroup;
 extern struct blkio_cgroup *cgroup_to_blkio_cgroup(struct cgroup *cgroup);
 extern struct blkio_cgroup *task_blkio_cgroup(struct task_struct *tsk);
-extern int blkiocg_del_blkio_group(struct blkio_group *blkg);
 extern struct blkio_group *blkg_lookup(struct blkio_cgroup *blkcg,
-                                      struct request_queue *q,
-                                      enum blkio_policy_id plid);
+                                      struct request_queue *q);
 struct blkio_group *blkg_lookup_create(struct blkio_cgroup *blkcg,
                                       struct request_queue *q,
                                       enum blkio_policy_id plid,
@@ -417,9 +415,6 @@ cgroup_to_blkio_cgroup(struct cgroup *cgroup) { return NULL; }
 static inline struct blkio_cgroup *
 task_blkio_cgroup(struct task_struct *tsk) { return NULL; }
 
-static inline int
-blkiocg_del_blkio_group(struct blkio_group *blkg) { return 0; }
-
 static inline struct blkio_group *blkg_lookup(struct blkio_cgroup *blkcg,
                                              void *key) { return NULL; }
 static inline void blkiocg_update_timeslice_used(struct blkio_group *blkg,