diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 8faeca6022bea0e9598f866d5c5bd9e8ceeea038..c46778d1f3c27de10c4ccc359760ec24b74ff335 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -383,7 +383,8 @@ static struct blkcg_gq *blkg_create(struct blkcg *blkcg, struct gendisk *disk,
 err_put_css:
 	css_put(&blkcg->css);
 err_free_blkg:
-	blkg_free(new_blkg);
+	if (new_blkg)
+		blkg_free(new_blkg);
 	return ERR_PTR(ret);
 }