[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <1193406324.6834.3.camel@norville.austin.ibm.com>
Date: Fri, 26 Oct 2007 08:45:24 -0500
From: Dave Kleikamp <shaggy@...ux.vnet.ibm.com>
To: Nick Piggin <nickpiggin@...oo.com.au>
Cc: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
paulus@...ba.org, benh@...nel.crashing.org, adaplas@...il.com,
"Morton, Andrew" <akpm@...ux-foundation.org>,
xfs-masters@....sgi.com
Subject: Re: [interesting] smattering of possible memory ordering bugs
Memory barriers aren't one of my strengths, but this appears correct.
Acked-by: Dave Kleikamp <shaggy@...ux.vnet.ibm.com>
On Fri, 2007-10-26 at 12:09 +1000, Nick Piggin wrote:
> Index: linux-2.6/fs/jfs/jfs_metapage.c
> ===================================================================
> --- linux-2.6.orig/fs/jfs/jfs_metapage.c
> +++ linux-2.6/fs/jfs/jfs_metapage.c
> @@ -39,11 +39,12 @@ static struct {
> #endif
>
> #define metapage_locked(mp) test_bit(META_locked, &(mp)->flag)
> -#define trylock_metapage(mp) test_and_set_bit(META_locked,
> &(mp)->flag)
> +#define trylock_metapage(mp) test_and_set_bit_lock(META_locked,
> &(mp)->flag)
>
> static inline void unlock_metapage(struct metapage *mp)
> {
> - clear_bit(META_locked, &mp->flag);
> + clear_bit_unlock(META_locked, &mp->flag);
> + smp_mb__after_clear_bit();
> wake_up(&mp->wait);
> }
>
Thanks,
Shaggy
--
David Kleikamp
IBM Linux Technology Center
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists