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

From: Christoph Rohland (cr@sap.com)
Date: Wed Mar 28 2001 - 04:18:16 EST


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/



This archive was generated by hypermail 2b29 : Sat Mar 31 2001 - 21:00:18 EST