Re: Proposed fix for i_sem deadlock in devfs in 2.4.2x kernel

Andrey Borzenkov (arvidjaar@mail.ru)
Fri, 20 Jun 2003 16:10:12 +0400


> devfs_d_revalidate_wait()
> {
> ...
> read_lock(...)
> ...
> add_wait_queue(&lookup_info->wait_queue, ...);
> read_unlock(...)
> up(&dir->i_sem); /* add for this proposed fix */

this can be called both with and without i_sem held. i_sem is held
for directory modifications but not for simple lookups. Is it correct
to increase i_sem count above 1? Note, it will be done by every
task so it may screw up locking completely.

Look at <http://marc.theaimsgroup.com/?l=linux-kernel&m=105233420622539&w=2> for alternative fix.

-andrey

> schedule();
> down(&dir->i_sem); /* add for this proposed fix */
> ...
>}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/