Revert "[PATCH] kthread: update loop.c to use kthread"
commit09c0dc68625c06f5b1e786aad0d5369b592179e6
authorLinus Torvalds <torvalds@g5.osdl.org>
Mon, 26 Jun 2006 18:55:42 +0000 (26 11:55 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 26 Jun 2006 18:55:42 +0000 (26 11:55 -0700)
tree19fd06de08792a4c07ee8b61e5615ee35e8ccec0
parent2a2ed2db353d949c06b6ef8b6913f65b39111eab
Revert "[PATCH] kthread: update loop.c to use kthread"

This reverts commit c7b2eff059fcc2d1b7085ee3d84b79fd657a537b.

Hugh Dickins explains:

 "It seems too little tested: "losetup -d /dev/loop0" fails with
  EINVAL because nothing sets lo_thread; but even when you patch
  loop_thread() to set lo->lo_thread = current, it can't survive
  more than a few dozen iterations of the loop below (with a tmpfs
  mounted on /tst):

j=0
cp /dev/zero /tst
while :
do
    let j=j+1
    echo "Doing pass $j"
    losetup /dev/loop0 /tst/zero
    mkfs -t ext2 -b 1024 /dev/loop0 >/dev/null 2>&1
    mount -t ext2 /dev/loop0 /mnt
    umount /mnt
    losetup -d /dev/loop0
done

  it collapses with failed ioctl then BUG_ON(!bio).

  I think the original lo_done completion was more subtle and safe
  than the kthread conversion has allowed for."

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/block/loop.c
include/linux/loop.h