[PATCHSET] kernfs, cgroup: make kernfs_path*() and cgroup_path*() behave in strlcpy() style

From: Tejun Heo
Date: Tue Aug 09 2016 - 01:23:37 EST


kernfs path formatting functions always return the length of full path
but the content of the output buffer is undefined when the length is
longer than the provided buffer. Most cgroup path formatting
functions return the start of the output or NULL on errors including
overflow. These inconsistent and rather peculiar behaviors developed
over time and make these functions unnecessarily difficult to use.
This patchset updates the formatting functions so that they all behave
in the style of strlcpy().

Greg, these changes are used by cgroup tracepoint additions and
shouldn't affect other users much. Would it be okay to route these
through the cgroup tree?

0001-kernfs-add-dummy-implementation-of-kernfs_path_from_.patch
0002-kernfs-make-kernfs_path-behave-in-the-style-of-strlc.patch
0003-kernfs-remove-kernfs_path_len.patch
0004-cgroup-make-cgroup_path-and-friends-behave-in-the-st.patch

The patches are also available in the following git branch.

git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-kernfs_path-strlcpy

diffstat follows. Thanks.

fs/kernfs/dir.c | 84 +++++++++------------------------------------
fs/sysfs/dir.c | 6 +--
include/linux/blk-cgroup.h | 11 -----
include/linux/cgroup.h | 9 ++--
include/linux/kernfs.h | 28 ++++++++++-----
kernel/cgroup.c | 48 +++++++++++--------------
kernel/cpuset.c | 12 +++---
7 files changed, 73 insertions(+), 125 deletions(-)

--
tejun