]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ocfs2: export ocfs2_kset for online file check
authorGang He <ghe@suse.com>
Tue, 9 Feb 2016 23:11:47 +0000 (10:11 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 9 Feb 2016 23:11:47 +0000 (10:11 +1100)
When there are errors in the ocfs2 filesystem,
they are usually accompanied by the inode number which caused the error.
This inode number would be the input to fixing the file.
One of these options could be considered:

A file in the sys filesytem which would accept inode numbers.
This could be used to communication back what has to be fixed or is fixed.
You could write:

$# echo "<inode>" > /sys/fs/ocfs2/devname/filecheck/check

or

$# echo "<inode>" > /sys/fs/ocfs2/devname/filecheck/fix

Compare with second version, I re-design filecheck sysfs interfaces, there
are three sysfs files (check, fix and set) under filecheck directory (see
above), sysfs will accept only one argument <inode>.  Second, I adjust
some code in ocfs2_filecheck_repair_inode_block() function according to
upstream feedback, we cannot just add VALID_FL flag back as a inode block
fix, then we will not fix this field corruption currently until having a
complete solution.  Compare with first version, I use strncasecmp instead
of double strncmp functions.  Second, update the source file contribution
vendor.

This patch (of 4):

Export ocfs2_kset object from ocfs2_stackglue kernel module, then
online file check code will create the related sysfiles under
ocfs2_kset object.  We're exporting this because it's built in
ocfs2_stackglue.ko.

Signed-off-by: Gang He <ghe@suse.com>
Reviewed-by: Mark Fasheh <mfasheh@suse.de>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Joseph Qi <joseph.qi@huawei.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/ocfs2/stackglue.c
fs/ocfs2/stackglue.h

index 5d965e83bd43e4eedbb7df078f92dcb34ab6a4b4..13219ed73e1d6f188f4b237a56259ff05b09a0bd 100644 (file)
@@ -629,7 +629,8 @@ static struct attribute_group ocfs2_attr_group = {
        .attrs = ocfs2_attrs,
 };
 
-static struct kset *ocfs2_kset;
+struct kset *ocfs2_kset;
+EXPORT_SYMBOL_GPL(ocfs2_kset);
 
 static void ocfs2_sysfs_exit(void)
 {
index 66334a30cea80b2555dc9658a7a4b71d2284d480..f2dce10fae543c254dcb4e6628d357b60a3ac16c 100644 (file)
@@ -298,4 +298,6 @@ void ocfs2_stack_glue_set_max_proto_version(struct ocfs2_protocol_version *max_p
 int ocfs2_stack_glue_register(struct ocfs2_stack_plugin *plugin);
 void ocfs2_stack_glue_unregister(struct ocfs2_stack_plugin *plugin);
 
+extern struct kset *ocfs2_kset;
+
 #endif  /* STACKGLUE_H */