I agree with the "is like kcalloc" argument in the sense that it does an allocation + something else. But in this case the "something else" is in fact a string operation, so this just seem to be in the middle.
I don't like this approach. From a quick grep you get 4972 kmalloc's in .c files in the kernel tree and only 35 kstrdup's. Moving kstrdup around is still just 7 patches, kmalloc is a much bigger problem.
Anyway, as I said before, if more people believe that moving kstrdup into mm/slab.c is the way to go, then its fine by me. The problem I was trying to solve was having several versions of strdup-like functions all around the kernel, and this problem gets fixed either way. Right now, the poll goes something like this:
string.c: me, Rusty Russell
slab.c: Pekka Enberg
I think we need more votes :)