--- x/fs/kernfs/dir.c +++ d/fs/kernfs/dir.c @@ -1364,6 +1364,7 @@ static void __kernfs_remove(struct kernf if (kernfs_active(pos)) atomic_add(KN_DEACTIVATED_BIAS, &pos->active); + kernfs_get(kn); /* deactivate and unlink the subtree node-by-node */ do { pos = kernfs_leftmost_descendant(kn); @@ -1406,6 +1407,8 @@ static void __kernfs_remove(struct kernf kernfs_put(pos); } while (pos != kn); + + kernfs_put(kn); } /**