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