Re: linux-2.1.44 on i586: Immediate crash on boot

Matthias Urlichs (smurf@nova.noris.de)
9 Jul 1997 09:40:49 +0200


torvalds@transmeta.com (Linus Torvalds) writes:
>
> Ok, how many people want to test out a pre-patch?

Not me. It's buggy. ;-)

Your new code says:

static void __wait_on_inode(struct inode * inode)
{
struct wait_queue wait = { current, NULL };

add_wait_queue(&inode->i_wait, &wait);
repeat:
current->state = TASK_UNINTERRUPTIBLE;
! if (test_bit(I_LOCK, &inode->i_state)) {
schedule();
goto repeat;
}
remove_wait_queue(&inode->i_wait, &wait);
current->state = TASK_RUNNING;
}

The banged line should be if (test_and_set_bit(..)), I'd say.
Same in wait_on_inode().

Or am I (as usual these days, it seems) missing something?

-- 
Matthias Urlichs         \  noris network GmbH  /  Xlink-POP Nürnberg 
Schleiermacherstraße 12   \   Linux+Internet   /   EMail: urlichs@noris.de
90491 Nürnberg (Germany)   \    Consulting+Programming+Networking+etc'ing
   PGP: 1024/4F578875   1B 89 E2 1C 43 EA 80 44  15 D2 29 CF C6 C7 E0 DE
       Click <A HREF="http://info.noris.de/~smurf/finger">here</A>.    42