Willy, I propose the attached patch (extracted from 2.4.33-ow1) for inclusion into 2.4.34-pre. (Last time I checked, 2.6 needed an equivalent fix, but I haven't produced one yet.) Basically, the code in drivers/block/loop.c did not check the return value from kernel_thread(). If kernel_thread() would fail, the code would misbehave (IIRC, the invoking process would become unkillable). An easy way to trigger the bug was to run losetup under strace (as root), and this is also how I tested the error path added with this patch. This change has been a part of publicly released -ow patches for 8+ months. There are more instances of kernel_thread() calls that do not check the return value; some of the remaining ones might need to be fixed, too. Thanks, Alexander