summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2011-01-29 15:37:25 -0500
committerPaul Gortmaker <paul.gortmaker@windriver.com>2011-01-29 15:37:25 -0500
commitdd1a220a6575d060bbc7cbf1efd3fef1da80333d (patch)
tree2b714f13ce6471f01bcf290dc60eb10aaee9fc04
parent95e9f0bf422408eb10f696c4b77cbaa9540adfbf (diff)
downloadrt-patches-dd1a220a6575d060bbc7cbf1efd3fef1da80333d.tar.gz
fix xfs lock patch after xfs lock rewrite upstreamv2.6.33-1076-g9872315v2.6.33-1061-g4cbd551v2.6.33-1056-gb305956
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--series2
-rw-r--r--xfs-Convert-mr_lock-m_peraglock-to-rw_anon_semaphore.patch445
-rw-r--r--xfs-Convert-mr_lock-to-rw_anon_semaphore.patch77
3 files changed, 78 insertions, 446 deletions
diff --git a/series b/series
index fe00221..9e1cef1 100644
--- a/series
+++ b/series
@@ -85,7 +85,7 @@ printk-Make-console_sem-a-semaphore-not-a-pseudo-mut.patch
semaphore-Remove-mutex-emulation.patch
rw_semaphores-Add-rw_anon_semaphores.patch
fs-Convert-i_alloc_sem-to-rw_anon_semaphore.patch
-xfs-Convert-mr_lock-m_peraglock-to-rw_anon_semaphore.patch
+xfs-Convert-mr_lock-to-rw_anon_semaphore.patch
signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch
kthreads-fix-softirq-startup-hang.patch
cpu-hotplug-get_cpu_var_locked-online-aware.patch
diff --git a/xfs-Convert-mr_lock-m_peraglock-to-rw_anon_semaphore.patch b/xfs-Convert-mr_lock-m_peraglock-to-rw_anon_semaphore.patch
deleted file mode 100644
index 2afe5a7..0000000
--- a/xfs-Convert-mr_lock-m_peraglock-to-rw_anon_semaphore.patch
+++ /dev/null
@@ -1,445 +0,0 @@
-From b8d5f48ecbe1251b97219de48e7e936745b22a6f Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx@linutronix.de>
-Date: Sun, 26 Jul 2009 17:48:08 +0200
-Subject: [PATCH] xfs: Convert mr_lock, m_peraglock to rw_anon_semaphore
-
-commit fa9298a53b64755ca4beb90ade84628af5a5249f in tip.
-
-Both locks have no struct owner rules and therefor preempt-rt must
-keep them as real semaphores. Convert them to rw_anon_semaphores and
-annotate their semantics hereby.
-
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-
-diff --git a/fs/xfs/linux-2.6/mrlock.h b/fs/xfs/linux-2.6/mrlock.h
-index ff6a198..77de2c2 100644
---- a/fs/xfs/linux-2.6/mrlock.h
-+++ b/fs/xfs/linux-2.6/mrlock.h
-@@ -21,7 +21,7 @@
- #include <linux/rwsem.h>
-
- typedef struct {
-- struct rw_semaphore mr_lock;
-+ struct rw_anon_semaphore mr_lock;
- #ifdef DEBUG
- int mr_writer;
- #endif
-@@ -29,10 +29,10 @@ typedef struct {
-
- #ifdef DEBUG
- #define mrinit(mrp, name) \
-- do { (mrp)->mr_writer = 0; init_rwsem(&(mrp)->mr_lock); } while (0)
-+ do { (mrp)->mr_writer = 0; init_anon_rwsem(&(mrp)->mr_lock); } while (0)
- #else
- #define mrinit(mrp, name) \
-- do { init_rwsem(&(mrp)->mr_lock); } while (0)
-+ do { init_anon_rwsem(&(mrp)->mr_lock); } while (0)
- #endif
-
- #define mrlock_init(mrp, t,n,s) mrinit(mrp, n)
-@@ -40,12 +40,12 @@ typedef struct {
-
- static inline void mraccess_nested(mrlock_t *mrp, int subclass)
- {
-- down_read_nested(&mrp->mr_lock, subclass);
-+ anon_down_read_nested(&mrp->mr_lock, subclass);
- }
-
- static inline void mrupdate_nested(mrlock_t *mrp, int subclass)
- {
-- down_write_nested(&mrp->mr_lock, subclass);
-+ anon_down_write_nested(&mrp->mr_lock, subclass);
- #ifdef DEBUG
- mrp->mr_writer = 1;
- #endif
-@@ -53,12 +53,12 @@ static inline void mrupdate_nested(mrlock_t *mrp, int subclass)
-
- static inline int mrtryaccess(mrlock_t *mrp)
- {
-- return down_read_trylock(&mrp->mr_lock);
-+ return anon_down_read_trylock(&mrp->mr_lock);
- }
-
- static inline int mrtryupdate(mrlock_t *mrp)
- {
-- if (!down_write_trylock(&mrp->mr_lock))
-+ if (!anon_down_write_trylock(&mrp->mr_lock))
- return 0;
- #ifdef DEBUG
- mrp->mr_writer = 1;
-@@ -71,12 +71,12 @@ static inline void mrunlock_excl(mrlock_t *mrp)
- #ifdef DEBUG
- mrp->mr_writer = 0;
- #endif
-- up_write(&mrp->mr_lock);
-+ anon_up_write(&mrp->mr_lock);
- }
-
- static inline void mrunlock_shared(mrlock_t *mrp)
- {
-- up_read(&mrp->mr_lock);
-+ anon_up_read(&mrp->mr_lock);
- }
-
- static inline void mrdemote(mrlock_t *mrp)
-@@ -84,7 +84,7 @@ static inline void mrdemote(mrlock_t *mrp)
- #ifdef DEBUG
- mrp->mr_writer = 0;
- #endif
-- downgrade_write(&mrp->mr_lock);
-+ anon_downgrade_write(&mrp->mr_lock);
- }
-
- #endif /* __XFS_SUPPORT_MRLOCK_H__ */
-diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c
-index 275b1f4..8c5422a 100644
---- a/fs/xfs/xfs_alloc.c
-+++ b/fs/xfs/xfs_alloc.c
-@@ -2270,7 +2270,7 @@ xfs_alloc_vextent(
- * These three force us into a single a.g.
- */
- args->agno = XFS_FSB_TO_AGNO(mp, args->fsbno);
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- args->pag = &mp->m_perag[args->agno];
- args->minleft = 0;
- error = xfs_alloc_fix_freelist(args, 0);
-@@ -2280,14 +2280,14 @@ xfs_alloc_vextent(
- goto error0;
- }
- if (!args->agbp) {
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- trace_xfs_alloc_vextent_noagbp(args);
- break;
- }
- args->agbno = XFS_FSB_TO_AGBNO(mp, args->fsbno);
- if ((error = xfs_alloc_ag_vextent(args)))
- goto error0;
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- break;
- case XFS_ALLOCTYPE_START_BNO:
- /*
-@@ -2339,7 +2339,7 @@ xfs_alloc_vextent(
- * Loop over allocation groups twice; first time with
- * trylock set, second time without.
- */
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- for (;;) {
- args->pag = &mp->m_perag[args->agno];
- if (no_min) args->minleft = 0;
-@@ -2401,7 +2401,7 @@ xfs_alloc_vextent(
- }
- }
- }
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- if (bump_rotor || (type == XFS_ALLOCTYPE_ANY_AG)) {
- if (args->agno == sagno)
- mp->m_agfrotor = (mp->m_agfrotor + 1) %
-@@ -2429,7 +2429,7 @@ xfs_alloc_vextent(
- }
- return 0;
- error0:
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- return error;
- }
-
-@@ -2454,7 +2454,7 @@ xfs_free_extent(
- args.agno = XFS_FSB_TO_AGNO(args.mp, bno);
- ASSERT(args.agno < args.mp->m_sb.sb_agcount);
- args.agbno = XFS_FSB_TO_AGBNO(args.mp, bno);
-- down_read(&args.mp->m_peraglock);
-+ anon_down_read(&args.mp->m_peraglock);
- args.pag = &args.mp->m_perag[args.agno];
- if ((error = xfs_alloc_fix_freelist(&args, XFS_ALLOC_FLAG_FREEING)))
- goto error0;
-@@ -2465,7 +2465,7 @@ xfs_free_extent(
- #endif
- error = xfs_free_ag_extent(tp, args.agbp, args.agno, args.agbno, len, 0);
- error0:
-- up_read(&args.mp->m_peraglock);
-+ anon_up_read(&args.mp->m_peraglock);
- return error;
- }
-
-diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
-index 98251cd..3326ac8 100644
---- a/fs/xfs/xfs_bmap.c
-+++ b/fs/xfs/xfs_bmap.c
-@@ -2629,13 +2629,13 @@ xfs_bmap_btalloc(
- if (startag == NULLAGNUMBER)
- startag = ag = 0;
- notinit = 0;
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- while (blen < ap->alen) {
- pag = &mp->m_perag[ag];
- if (!pag->pagf_init &&
- (error = xfs_alloc_pagf_init(mp, args.tp,
- ag, XFS_ALLOC_FLAG_TRYLOCK))) {
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- return error;
- }
- /*
-@@ -2668,7 +2668,7 @@ xfs_bmap_btalloc(
-
- error = xfs_filestream_new_ag(ap, &ag);
- if (error) {
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- return error;
- }
-
-@@ -2682,7 +2682,7 @@ xfs_bmap_btalloc(
- if (ag == startag)
- break;
- }
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- /*
- * Since the above loop did a BUF_TRYLOCK, it is
- * possible that there is space for this request.
-diff --git a/fs/xfs/xfs_filestream.c b/fs/xfs/xfs_filestream.c
-index a631e14..1dbe404 100644
---- a/fs/xfs/xfs_filestream.c
-+++ b/fs/xfs/xfs_filestream.c
-@@ -526,7 +526,7 @@ xfs_filestream_associate(
-
- mp = pip->i_mount;
- cache = mp->m_filestream;
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
-
- /*
- * We have a problem, Houston.
-@@ -544,7 +544,7 @@ xfs_filestream_associate(
- * So, if we can't get the iolock without sleeping then just give up
- */
- if (!xfs_ilock_nowait(pip, XFS_IOLOCK_EXCL)) {
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- return 1;
- }
-
-@@ -601,7 +601,7 @@ exit_did_pick:
-
- exit:
- xfs_iunlock(pip, XFS_IOLOCK_EXCL);
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- return -err;
- }
-
-diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c
-index a13919a..ce3baff 100644
---- a/fs/xfs/xfs_fsops.c
-+++ b/fs/xfs/xfs_fsops.c
-@@ -177,14 +177,14 @@ xfs_growfs_data_private(
- if (!new_perag)
- return XFS_ERROR(ENOMEM);
-
-- down_write(&mp->m_peraglock);
-+ anon_down_write(&mp->m_peraglock);
- memcpy(new_perag, mp->m_perag, sizeof(xfs_perag_t) * oagcount);
- old_perag = mp->m_perag;
- mp->m_perag = new_perag;
-
- mp->m_flags |= XFS_MOUNT_32BITINODES;
- nagimax = xfs_initialize_perag(mp, nagcount);
-- up_write(&mp->m_peraglock);
-+ anon_up_write(&mp->m_peraglock);
-
- kmem_free(old_perag);
- }
-diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c
-index cb907ba..303a3fe 100644
---- a/fs/xfs/xfs_ialloc.c
-+++ b/fs/xfs/xfs_ialloc.c
-@@ -382,9 +382,9 @@ xfs_ialloc_ag_alloc(
- newino = XFS_OFFBNO_TO_AGINO(args.mp, args.agbno, 0);
- be32_add_cpu(&agi->agi_count, newlen);
- be32_add_cpu(&agi->agi_freecount, newlen);
-- down_read(&args.mp->m_peraglock);
-+ anon_down_read(&args.mp->m_peraglock);
- args.mp->m_perag[agno].pagi_freecount += newlen;
-- up_read(&args.mp->m_peraglock);
-+ anon_up_read(&args.mp->m_peraglock);
- agi->agi_newino = cpu_to_be32(newino);
-
- /*
-@@ -486,7 +486,7 @@ xfs_ialloc_ag_select(
- */
- agno = pagno;
- flags = XFS_ALLOC_FLAG_TRYLOCK;
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- for (;;) {
- pag = &mp->m_perag[agno];
- if (!pag->pagi_init) {
-@@ -527,7 +527,7 @@ xfs_ialloc_ag_select(
- agbp = NULL;
- goto nextag;
- }
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- return agbp;
- }
- }
-@@ -540,7 +540,7 @@ nextag:
- * down.
- */
- if (XFS_FORCED_SHUTDOWN(mp)) {
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- return NULL;
- }
- agno++;
-@@ -548,7 +548,7 @@ nextag:
- agno = 0;
- if (agno == pagno) {
- if (flags == 0) {
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- return NULL;
- }
- flags = 0;
-@@ -771,13 +771,13 @@ nextag:
- *inop = NULLFSINO;
- return noroom ? ENOSPC : 0;
- }
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- if (mp->m_perag[tagno].pagi_inodeok == 0) {
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- goto nextag;
- }
- error = xfs_ialloc_read_agi(mp, tp, tagno, &agbp);
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- if (error)
- goto nextag;
- agi = XFS_BUF_TO_AGI(agbp);
-@@ -1006,9 +1006,9 @@ alloc_inode:
- goto error0;
- be32_add_cpu(&agi->agi_freecount, -1);
- xfs_ialloc_log_agi(tp, agbp, XFS_AGI_FREECOUNT);
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- mp->m_perag[tagno].pagi_freecount--;
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
-
- error = xfs_check_agi_freecount(cur, agi);
- if (error)
-@@ -1088,9 +1088,9 @@ xfs_difree(
- /*
- * Get the allocation group header.
- */
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- error = xfs_ialloc_read_agi(mp, tp, agno, &agbp);
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- if (error) {
- cmn_err(CE_WARN,
- "xfs_difree: xfs_ialloc_read_agi() returned an error %d on %s. Returning error.",
-@@ -1157,9 +1157,9 @@ xfs_difree(
- be32_add_cpu(&agi->agi_count, -ilen);
- be32_add_cpu(&agi->agi_freecount, -(ilen - 1));
- xfs_ialloc_log_agi(tp, agbp, XFS_AGI_COUNT | XFS_AGI_FREECOUNT);
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- mp->m_perag[agno].pagi_freecount -= ilen - 1;
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- xfs_trans_mod_sb(tp, XFS_TRANS_SB_ICOUNT, -ilen);
- xfs_trans_mod_sb(tp, XFS_TRANS_SB_IFREE, -(ilen - 1));
-
-@@ -1188,9 +1188,9 @@ xfs_difree(
- */
- be32_add_cpu(&agi->agi_freecount, 1);
- xfs_ialloc_log_agi(tp, agbp, XFS_AGI_FREECOUNT);
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- mp->m_perag[agno].pagi_freecount++;
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- xfs_trans_mod_sb(tp, XFS_TRANS_SB_IFREE, 1);
- }
-
-@@ -1312,9 +1312,9 @@ xfs_imap(
- xfs_buf_t *agbp; /* agi buffer */
- int i; /* temp state */
-
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- error = xfs_ialloc_read_agi(mp, tp, agno, &agbp);
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- if (error) {
- xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: "
- "xfs_ialloc_read_agi() returned "
-diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
-index 62efab2..521bc20 100644
---- a/fs/xfs/xfs_itable.c
-+++ b/fs/xfs/xfs_itable.c
-@@ -420,9 +420,9 @@ xfs_bulkstat(
- while (XFS_BULKSTAT_UBLEFT(ubleft) && agno < mp->m_sb.sb_agcount) {
- cond_resched();
- bp = NULL;
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- error = xfs_ialloc_read_agi(mp, NULL, agno, &agbp);
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- if (error) {
- /*
- * Skip this allocation group and go to the next one.
-@@ -849,9 +849,9 @@ xfs_inumbers(
- agbp = NULL;
- while (left > 0 && agno < mp->m_sb.sb_agcount) {
- if (agbp == NULL) {
-- down_read(&mp->m_peraglock);
-+ anon_down_read(&mp->m_peraglock);
- error = xfs_ialloc_read_agi(mp, NULL, agno, &agbp);
-- up_read(&mp->m_peraglock);
-+ anon_up_read(&mp->m_peraglock);
- if (error) {
- /*
- * If we can't read the AGI of this ag,
-diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
-index eb403b4..95997a6 100644
---- a/fs/xfs/xfs_mount.c
-+++ b/fs/xfs/xfs_mount.c
-@@ -1152,7 +1152,7 @@ xfs_mountfs(
- /*
- * Allocate and initialize the per-ag data.
- */
-- init_rwsem(&mp->m_peraglock);
-+ init_anon_rwsem(&mp->m_peraglock);
- mp->m_perag = kmem_zalloc(sbp->sb_agcount * sizeof(xfs_perag_t),
- KM_MAYFAIL);
- if (!mp->m_perag)
-diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
-index 1df7e45..0088311 100644
---- a/fs/xfs/xfs_mount.h
-+++ b/fs/xfs/xfs_mount.h
-@@ -208,7 +208,7 @@ typedef struct xfs_mount {
- uint m_bm_maxlevels[2]; /* XFS_BM_MAXLEVELS */
- uint m_in_maxlevels; /* max inobt btree levels. */
- struct xfs_perag *m_perag; /* per-ag accounting info */
-- struct rw_semaphore m_peraglock; /* lock for m_perag (pointer) */
-+ struct rw_anon_semaphore m_peraglock; /* lock for m_perag (pointer) */
- struct mutex m_growlock; /* growfs mutex */
- int m_fixedfsid[2]; /* unchanged for life of FS */
- uint m_dmevmask; /* DMI events for this FS */
---
-1.7.1.1
-
diff --git a/xfs-Convert-mr_lock-to-rw_anon_semaphore.patch b/xfs-Convert-mr_lock-to-rw_anon_semaphore.patch
new file mode 100644
index 0000000..e210daa
--- /dev/null
+++ b/xfs-Convert-mr_lock-to-rw_anon_semaphore.patch
@@ -0,0 +1,77 @@
+From f20b3284acb500658675610d8030c89c21067fd7 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Sun, 26 Jul 2009 17:48:08 +0200
+Subject: [PATCH] xfs: Convert mr_lock to rw_anon_semaphore
+
+commit fa9298a53b64755ca4beb90ade84628af5a5249f in tip.
+
+This lock has no struct owner rules and therefore preempt-rt must
+keep them as real semaphores. Convert them to rw_anon_semaphores and
+annotate their semantics hereby.
+
+[PG: m_pergalock is gone in 34+, just mr_lock remains]
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
+
+diff --git a/fs/xfs/linux-2.6/mrlock.h b/fs/xfs/linux-2.6/mrlock.h
+index ff6a198..f55cf5b 100644
+--- a/fs/xfs/linux-2.6/mrlock.h
++++ b/fs/xfs/linux-2.6/mrlock.h
+@@ -40,12 +40,12 @@ typedef struct {
+
+ static inline void mraccess_nested(mrlock_t *mrp, int subclass)
+ {
+- down_read_nested(&mrp->mr_lock, subclass);
++ anon_down_read_nested(&mrp->mr_lock, subclass);
+ }
+
+ static inline void mrupdate_nested(mrlock_t *mrp, int subclass)
+ {
+- down_write_nested(&mrp->mr_lock, subclass);
++ anon_down_write_nested(&mrp->mr_lock, subclass);
+ #ifdef DEBUG
+ mrp->mr_writer = 1;
+ #endif
+@@ -53,12 +53,12 @@ static inline void mrupdate_nested(mrlock_t *mrp, int subclass)
+
+ static inline int mrtryaccess(mrlock_t *mrp)
+ {
+- return down_read_trylock(&mrp->mr_lock);
++ return anon_down_read_trylock(&mrp->mr_lock);
+ }
+
+ static inline int mrtryupdate(mrlock_t *mrp)
+ {
+- if (!down_write_trylock(&mrp->mr_lock))
++ if (!anon_down_write_trylock(&mrp->mr_lock))
+ return 0;
+ #ifdef DEBUG
+ mrp->mr_writer = 1;
+@@ -71,12 +71,12 @@ static inline void mrunlock_excl(mrlock_t *mrp)
+ #ifdef DEBUG
+ mrp->mr_writer = 0;
+ #endif
+- up_write(&mrp->mr_lock);
++ anon_up_write(&mrp->mr_lock);
+ }
+
+ static inline void mrunlock_shared(mrlock_t *mrp)
+ {
+- up_read(&mrp->mr_lock);
++ anon_up_read(&mrp->mr_lock);
+ }
+
+ static inline void mrdemote(mrlock_t *mrp)
+@@ -84,7 +84,7 @@ static inline void mrdemote(mrlock_t *mrp)
+ #ifdef DEBUG
+ mrp->mr_writer = 0;
+ #endif
+- downgrade_write(&mrp->mr_lock);
++ anon_downgrade_write(&mrp->mr_lock);
+ }
+
+ #endif /* __XFS_SUPPORT_MRLOCK_H__ */
+--
+1.7.1
+