diff --git a/[refs] b/[refs] index 9c23159bc90c..47ec85fa1fa7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 69753a0f14d3cb2e8a70e559ef8d409e4deeac8a +refs/heads/master: 5da4e689449ad99ab31cf2208d99eddfce0498ba diff --git a/trunk/drivers/base/devtmpfs.c b/trunk/drivers/base/devtmpfs.c index a49897d05325..6d678c99512e 100644 --- a/trunk/drivers/base/devtmpfs.c +++ b/trunk/drivers/base/devtmpfs.c @@ -164,34 +164,28 @@ static int dev_mkdir(const char *name, mode_t mode) static int create_path(const char *nodepath) { + char *path; + char *s; int err; - err = dev_mkdir(nodepath, 0755); - if (err == -ENOENT) { - char *path; - char *s; + /* parent directories do not exist, create them */ + path = kstrdup(nodepath, GFP_KERNEL); + if (!path) + return -ENOMEM; - /* parent directories do not exist, create them */ - path = kstrdup(nodepath, GFP_KERNEL); - if (!path) { - err = -ENOMEM; - goto out; - } - s = path; - for (;;) { - s = strchr(s, '/'); - if (!s) - break; - s[0] = '\0'; - err = dev_mkdir(path, 0755); - if (err && err != -EEXIST) - break; - s[0] = '/'; - s++; - } - kfree(path); + s = path; + for (;;) { + s = strchr(s, '/'); + if (!s) + break; + s[0] = '\0'; + err = dev_mkdir(path, 0755); + if (err && err != -EEXIST) + break; + s[0] = '/'; + s++; } -out: + kfree(path); return err; }