[PATCH v2 0/3] sysfs: Refine is_visible API

From: Vivien Didelot
Date: Wed Mar 11 2015 - 14:30:00 EST


Up to now, is_visible can only be used to either remove visibility
of a file entirely or to add permissions, but not to reduce permissions.
This makes it impossible, for example, to use DEVICE_ATTR_RW to define
file attributes and reduce permissions to read-only.

This behavior is undesirable and unnecessarily complicates code which
needs to reduce permissions; instead of just returning the desired
permissions, it has to ensure that the permissions in the attribute
variable declaration only reflect the minimal permissions ever needed.

Change semantics of is_visible to only use the permissions returned
from it instead of oring the returned value with the hard-coded
permissions.

The code now dumps a warning to the console if an is_visible function
returns unexpected permissions.

Also document struct attribute_group.

Tested with v3.19-rc5.

v2: This patchset, originally from Guenter, includes the fixup for the
patch 2/3 discussed in the thread https://lkml.org/lkml/2015/1/20/877,
that is limiting the scope of attributes to SYSFS_PREALLOC | 0664, since
we want to avoid executable and world-writable sysfs files as well.

Rebased onto v4.0-rc3.

Guenter Roeck (2):
sysfs: Use only return value from is_visible for the file mode
sysfs: Document struct attribute_group

Vivien Didelot (1):
sysfs: Only accept read/write permissions for file attributes

fs/sysfs/group.c | 11 ++++++++---
include/linux/sysfs.h | 15 +++++++++++++++
2 files changed, 23 insertions(+), 3 deletions(-)

--
2.3.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/