mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 05:31:15 +00:00
Revert "[PATCH] kthread: update loop.c to use kthread"
This reverts commit c7b2eff059
.
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>
This commit is contained in:
parent
2a2ed2db35
commit
09c0dc6862
2 changed files with 14 additions and 12 deletions
|
@ -59,7 +59,7 @@ struct loop_device {
|
|||
struct bio *lo_bio;
|
||||
struct bio *lo_biotail;
|
||||
int lo_state;
|
||||
struct task_struct *lo_thread;
|
||||
struct completion lo_done;
|
||||
struct completion lo_bh_done;
|
||||
struct mutex lo_ctl_mutex;
|
||||
int lo_pending;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue