* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6: Driver core: struct class remove children list block: do_mounts - accept root=<non-existant partition>
···7676 char s[32];7777 char *p;7878 dev_t res = 0;7979+ int part;79808081 if (strncmp(name, "/dev/", 5) != 0) {8182 unsigned maj, min;···107106 for (p = s; *p; p++)108107 if (*p == '/')109108 *p = '!';110110- res = blk_lookup_devt(s);109109+ res = blk_lookup_devt(s, 0);110110+ if (res)111111+ goto done;112112+113113+ /*114114+ * try non-existant, but valid partition, which may only exist115115+ * after revalidating the disk, like partitioned md devices116116+ */117117+ while (p > s && isdigit(p[-1]))118118+ p--;119119+ if (p == s || !*p || *p == '0')120120+ goto fail;121121+122122+ /* try disk name without <part number> */123123+ part = simple_strtoul(p, NULL, 10);124124+ *p = '\0';125125+ res = blk_lookup_devt(s, part);126126+ if (res)127127+ goto done;128128+129129+ /* try disk name without p<part number> */130130+ if (p < s + 2 || !isdigit(p[-2]) || p[-1] != 'p')131131+ goto fail;132132+ p[-1] = '\0';133133+ res = blk_lookup_devt(s, part);111134 if (res)112135 goto done;113136