From a3323a5af854bd792d573d3f9c88ac676de97af8 Mon Sep 17 00:00:00 2001
From: nikita <nikita>
Date: Tue, 11 Nov 2008 11:47:41 +0000
Subject: [PATCH] peacify lockdep during mount.

---
 lustre/obdclass/obd_mount.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lustre/obdclass/obd_mount.c b/lustre/obdclass/obd_mount.c
index b21a58cabf..fcac24ca58 100644
--- a/lustre/obdclass/obd_mount.c
+++ b/lustre/obdclass/obd_mount.c
@@ -167,7 +167,7 @@ struct lustre_mount_info *server_get_mount(const char *name)
         lsi = s2lsi(lmi->lmi_sb);
         mntget(lmi->lmi_mnt);
         atomic_inc(&lsi->lsi_mounts);
-        
+
         CDEBUG(D_MOUNT, "get_mnt %p from %s, refs=%d, vfscount=%d\n",
                lmi->lmi_mnt, name, atomic_read(&lsi->lsi_mounts),
                atomic_read(&lmi->lmi_mnt->mnt_count));
@@ -1938,6 +1938,12 @@ int lustre_fill_super(struct super_block *sb, void *data, int silent)
                 RETURN(-ENOMEM);
         lmd = lsi->lsi_lmd;
 
+        /*
+         * Disable lockdep during mount, because mount locking patterns are
+         * `special'.
+         */
+        lockdep_off();
+
         /* Figure out the lmd from the mount options */
         if (lmd_parse((char *)data, lmd)) {
                 lustre_put_lsi(sb);
@@ -1981,9 +1987,10 @@ out:
                 CERROR("Unable to mount %s (%d)\n",
                        s2lsi(sb) ? lmd->lmd_dev : "", rc);
         } else {
-                CDEBUG(D_SUPER, "Mount %s complete\n", 
+                CDEBUG(D_SUPER, "Mount %s complete\n",
                        lmd->lmd_dev);
         }
+        lockdep_on();
         return rc;
 }
 
-- 
GitLab