|
@@ -16,6 +16,7 @@
|
|
#include <linux/kexec.h>
|
|
#include <linux/kexec.h>
|
|
#include <linux/profile.h>
|
|
#include <linux/profile.h>
|
|
#include <linux/sched.h>
|
|
#include <linux/sched.h>
|
|
|
|
+#include <linux/capability.h>
|
|
|
|
|
|
#define KERNEL_ATTR_RO(_name) \
|
|
#define KERNEL_ATTR_RO(_name) \
|
|
static struct kobj_attribute _name##_attr = __ATTR_RO(_name)
|
|
static struct kobj_attribute _name##_attr = __ATTR_RO(_name)
|
|
@@ -131,6 +132,14 @@ KERNEL_ATTR_RO(vmcoreinfo);
|
|
|
|
|
|
#endif /* CONFIG_KEXEC */
|
|
#endif /* CONFIG_KEXEC */
|
|
|
|
|
|
|
|
+/* whether file capabilities are enabled */
|
|
|
|
+static ssize_t fscaps_show(struct kobject *kobj,
|
|
|
|
+ struct kobj_attribute *attr, char *buf)
|
|
|
|
+{
|
|
|
|
+ return sprintf(buf, "%d\n", file_caps_enabled);
|
|
|
|
+}
|
|
|
|
+KERNEL_ATTR_RO(fscaps);
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Make /sys/kernel/notes give the raw contents of our kernel .notes section.
|
|
* Make /sys/kernel/notes give the raw contents of our kernel .notes section.
|
|
*/
|
|
*/
|
|
@@ -158,6 +167,7 @@ struct kobject *kernel_kobj;
|
|
EXPORT_SYMBOL_GPL(kernel_kobj);
|
|
EXPORT_SYMBOL_GPL(kernel_kobj);
|
|
|
|
|
|
static struct attribute * kernel_attrs[] = {
|
|
static struct attribute * kernel_attrs[] = {
|
|
|
|
+ &fscaps_attr.attr,
|
|
#if defined(CONFIG_HOTPLUG)
|
|
#if defined(CONFIG_HOTPLUG)
|
|
&uevent_seqnum_attr.attr,
|
|
&uevent_seqnum_attr.attr,
|
|
&uevent_helper_attr.attr,
|
|
&uevent_helper_attr.attr,
|