Re: [PATCH] Fix races in 2.4.2-ac22 SysV shared memory

Christoph Rohland (cr@sap.com)
28 Mar 2001 11:18:16 +0200


Hi Stephen,

On Fri, 23 Mar 2001, Stephen C. Tweedie wrote:
> @@ -234,11 +243,11 @@
> return -ENOMEM;
> }
>
> - spin_lock(&info->lock);
> - shmem_recalc_inode(page->mapping->host);
> entry = shmem_swp_entry(info, page->index);
> if (IS_ERR(entry)) /* this had been allocted on page allocation */
> BUG();
> + spin_lock(&info->lock);
> + shmem_recalc_inode(page->mapping->host);
> error = -EAGAIN;
> if (entry->val) {
> __swap_free(swap, 2);

I think this is wrong. The spinlock protects us against
shmem_truncate. shmem_swp_entry cannot sleep in this case since the
entry is allocated in nopage.

Greetings
Christoph

-
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/