|
@@ -22,12 +22,12 @@
|
|
|
|
|
|
typedef struct {
|
|
|
struct rw_semaphore mr_lock;
|
|
|
-#ifdef DEBUG
|
|
|
+#if defined(DEBUG) || defined(XFS_WARN)
|
|
|
int mr_writer;
|
|
|
#endif
|
|
|
} mrlock_t;
|
|
|
|
|
|
-#ifdef DEBUG
|
|
|
+#if defined(DEBUG) || defined(XFS_WARN)
|
|
|
#define mrinit(mrp, name) \
|
|
|
do { (mrp)->mr_writer = 0; init_rwsem(&(mrp)->mr_lock); } while (0)
|
|
|
#else
|
|
@@ -46,7 +46,7 @@ static inline void mraccess_nested(mrlock_t *mrp, int subclass)
|
|
|
static inline void mrupdate_nested(mrlock_t *mrp, int subclass)
|
|
|
{
|
|
|
down_write_nested(&mrp->mr_lock, subclass);
|
|
|
-#ifdef DEBUG
|
|
|
+#if defined(DEBUG) || defined(XFS_WARN)
|
|
|
mrp->mr_writer = 1;
|
|
|
#endif
|
|
|
}
|
|
@@ -60,7 +60,7 @@ static inline int mrtryupdate(mrlock_t *mrp)
|
|
|
{
|
|
|
if (!down_write_trylock(&mrp->mr_lock))
|
|
|
return 0;
|
|
|
-#ifdef DEBUG
|
|
|
+#if defined(DEBUG) || defined(XFS_WARN)
|
|
|
mrp->mr_writer = 1;
|
|
|
#endif
|
|
|
return 1;
|
|
@@ -68,7 +68,7 @@ static inline int mrtryupdate(mrlock_t *mrp)
|
|
|
|
|
|
static inline void mrunlock_excl(mrlock_t *mrp)
|
|
|
{
|
|
|
-#ifdef DEBUG
|
|
|
+#if defined(DEBUG) || defined(XFS_WARN)
|
|
|
mrp->mr_writer = 0;
|
|
|
#endif
|
|
|
up_write(&mrp->mr_lock);
|
|
@@ -81,7 +81,7 @@ static inline void mrunlock_shared(mrlock_t *mrp)
|
|
|
|
|
|
static inline void mrdemote(mrlock_t *mrp)
|
|
|
{
|
|
|
-#ifdef DEBUG
|
|
|
+#if defined(DEBUG) || defined(XFS_WARN)
|
|
|
mrp->mr_writer = 0;
|
|
|
#endif
|
|
|
downgrade_write(&mrp->mr_lock);
|