summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2017-03-03 18:16:07 +0100
committerIlya Dryomov <idryomov@gmail.com>2017-05-04 09:19:18 +0200
commitd6a3408a77807037872892c2a2034180fcc08d12 (patch)
tree0ca6296ad3edb73ea0690f6c1b024844164f89f8 /net
parentlibceph, ceph: always advertise all supported features (diff)
downloadlinux-d6a3408a77807037872892c2a2034180fcc08d12.tar.xz
linux-d6a3408a77807037872892c2a2034180fcc08d12.zip
libceph: supported_features module parameter
Add a readonly, exported to sysfs module parameter so that userspace can generate meaningful error messages. It's a bit funky, but there is no other libceph-specific place. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'net')
-rw-r--r--net/ceph/ceph_common.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/net/ceph/ceph_common.c b/net/ceph/ceph_common.c
index 4701d067169f..6eeeb67bed84 100644
--- a/net/ceph/ceph_common.c
+++ b/net/ceph/ceph_common.c
@@ -45,6 +45,17 @@ bool libceph_compatible(void *data)
}
EXPORT_SYMBOL(libceph_compatible);
+static int param_get_supported_features(char *buffer,
+ const struct kernel_param *kp)
+{
+ return sprintf(buffer, "0x%llx", CEPH_FEATURES_SUPPORTED_DEFAULT);
+}
+static const struct kernel_param_ops param_ops_supported_features = {
+ .get = param_get_supported_features,
+};
+module_param_cb(supported_features, &param_ops_supported_features, NULL,
+ S_IRUGO);
+
/*
* find filename portion of a path (/foo/bar/baz -> baz)
*/