]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/kernfs/file.c
kernfs: remove KERNFS_REMOVED
[karo-tx-linux.git] / fs / kernfs / file.c
index bdd38854ef65bd5d3191b97dd43ddcb16a717c3a..231a171f48b6f107f729594a82165f4973e56073 100644 (file)
@@ -856,9 +856,13 @@ struct kernfs_node *__kernfs_create_file(struct kernfs_node *parent,
        if (ops->mmap)
                kn->flags |= KERNFS_HAS_MMAP;
 
-       kernfs_addrm_start(&acxt);
-       rc = kernfs_add_one(&acxt, kn, parent);
-       kernfs_addrm_finish(&acxt);
+       rc = -ENOENT;
+       if (kernfs_get_active(parent)) {
+               kernfs_addrm_start(&acxt);
+               rc = kernfs_add_one(&acxt, kn, parent);
+               kernfs_addrm_finish(&acxt);
+               kernfs_put_active(parent);
+       }
 
        if (rc) {
                kernfs_put(kn);