Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 46dfb5aa authored by Gaurav Mahajan's avatar Gaurav Mahajan Committed by Greg Kroah-Hartman
Browse files

staging: lustre: llite: Delaying creation of client side proc entries.



In client_common_fill_super() proc entries are created before
before cl_sb_init() and therefore lu_site is not allocated resulting
in client crash when tried reading lu_site stats.
Delaying creation of proc entries after creation of all required data
structures fixed the problem.

Signed-off-by: default avatarGaurav Mahajan <gmahajan@ddn.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2941
Reviewed-on: http://review.whamcloud.com/6852


Reviewed-by: default avatarAndreas Dilger <andreas.dilger@intel.com>
Reviewed-by: default avatarEmoly Liu <emoly.liu@intel.com>
Signed-off-by: default avatarJames Simmons <jsimmons@infradead.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 98b29828
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -166,12 +166,6 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt,
		return -ENOMEM;
	}

	if (llite_root) {
		err = ldebugfs_register_mountpoint(llite_root, sb, dt, md);
		if (err < 0)
			CERROR("could not register mount in <debugfs>/lustre/llite\n");
	}

	/* indicate the features supported by this client */
	data->ocd_connect_flags = OBD_CONNECT_IBITS    | OBD_CONNECT_NODEVOH  |
				  OBD_CONNECT_ATTRFID  |
@@ -552,6 +546,15 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt,
	kfree(data);
	kfree(osfs);

	if (llite_root) {
		err = ldebugfs_register_mountpoint(llite_root, sb, dt, md);
		if (err < 0) {
			CERROR("%s: could not register mount in debugfs: "
			       "rc = %d\n", ll_get_fsname(sb, NULL, 0), err);
			err = 0;
		}
	}

	return err;
out_root:
	iput(root);
@@ -570,7 +573,6 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt,
out:
	kfree(data);
	kfree(osfs);
	ldebugfs_unregister_mountpoint(sbi);
	return err;
}