From 39bc6042e5a55285fa0640ee6981691febd5563f Mon Sep 17 00:00:00 2001 From: Vivek Goyal Date: Tue, 14 Sep 2010 08:47:11 +0200 Subject: [PATCH] --- yaml --- r: 210893 b: refs/heads/master c: 180be2a0420a0d680285e9352c0db85016b9ed2a h: refs/heads/master i: 210891: 123f0c07844258ec480557bd8eb3dcb4f4e92855 v: v3 --- [refs] | 2 +- trunk/block/cfq-iosched.c | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index a3d4c9653aa3..a8221883986d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a45dc2d2b8d1afa57c91dcfac224e50ffcd3f805 +refs/heads/master: 180be2a0420a0d680285e9352c0db85016b9ed2a diff --git a/trunk/block/cfq-iosched.c b/trunk/block/cfq-iosched.c index f65c6f01c475..9eba291eb6fd 100644 --- a/trunk/block/cfq-iosched.c +++ b/trunk/block/cfq-iosched.c @@ -1019,10 +1019,20 @@ cfq_find_alloc_cfqg(struct cfq_data *cfqd, struct cgroup *cgroup, int create) */ atomic_set(&cfqg->ref, 1); - /* Add group onto cgroup list */ - sscanf(dev_name(bdi->dev), "%u:%u", &major, &minor); - cfq_blkiocg_add_blkio_group(blkcg, &cfqg->blkg, (void *)cfqd, + /* + * Add group onto cgroup list. It might happen that bdi->dev is + * not initiliazed yet. Initialize this new group without major + * and minor info and this info will be filled in once a new thread + * comes for IO. See code above. + */ + if (bdi->dev) { + sscanf(dev_name(bdi->dev), "%u:%u", &major, &minor); + cfq_blkiocg_add_blkio_group(blkcg, &cfqg->blkg, (void *)cfqd, MKDEV(major, minor)); + } else + cfq_blkiocg_add_blkio_group(blkcg, &cfqg->blkg, (void *)cfqd, + 0); + cfqg->weight = blkcg_get_weight(blkcg, cfqg->blkg.dev); /* Add group on cfqd list */