• L
    Revert "[PATCH] kthread: update loop.c to use kthread" · 09c0dc68
    Linus Torvalds 提交于
    This reverts commit c7b2eff0.
    
    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: NLinus Torvalds <torvalds@osdl.org>
    09c0dc68
loop.c 32.7 KB