• Tejun Heo's avatar
    kernfs: make kernfs_path*() behave in the style of strlcpy() · 3abb1d90
    Tejun Heo authored
    kernfs_path*() functions always return the length of the full path but
    the path content is undefined if the length is larger than the
    provided buffer.  This makes its behavior different from strlcpy() and
    requires error handling in all its users even when they don't care
    about truncation.  In addition, the implementation can actully be
    simplified by making it behave properly in strlcpy() style.
    
    * Update kernfs_path_from_node_locked() to always fill up the buffer
      with path.  If the buffer is not large enough, the output is
      truncated and terminated.
    
    * kernfs_path() no longer needs error handling.  Make it a simple
      inline wrapper around kernfs_path_from_node().
    
    * sysfs_warn_dup()'s use of kernfs_path() doesn't need error handling.
      Updated accordingly.
    
    * cgroup_path()'s use of kernfs_path() updated to retain the old
      behavior.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Acked-by: default avatarSerge Hallyn <serge.hallyn@ubuntu.com>
    3abb1d90
dir.c 40.4 KB