* Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, 2014, Intel Corporation.
+ * Copyright (c) 2011, 2015, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
#define dxtrace(command)
#endif
-#define BH_DXLock 25
+#define BH_DXLock (BH_BITMAP_UPTODATE + 1)
#define DX_DEBUG (0)
#if DX_DEBUG
static struct iam_lock_stats {
{
DX_DEVAL(iam_lock_stats.dls_bh_lock++);
#ifdef CONFIG_SMP
- while (test_and_set_bit(BH_DXLock, &bh->b_state)) {
+ while (test_and_set_bit_lock(BH_DXLock, &bh->b_state)) {
DX_DEVAL(iam_lock_stats.dls_bh_busy++);
while (test_bit(BH_DXLock, &bh->b_state))
cpu_relax();
static inline void iam_unlock_bh(struct buffer_head *bh)
{
#ifdef CONFIG_SMP
- smp_mb__before_clear_bit();
- clear_bit(BH_DXLock, &bh->b_state);
+ clear_bit_unlock(BH_DXLock, &bh->b_state);
#endif
}