[PATCH v4 0/3] ceph: don't NULL terminate virtual xattrs

From: Jeff Layton
Date: Mon Jun 24 2019 - 12:27:32 EST

v4: resurrect snprintf_noterm as static function that uses a
fixed-size intermediate buffer.
Return -E2BIG and WARN if the formatted string exceeds temp buffer.
make getxattr_cb callbacks return ssize_t.
v3: switch to using an intermediate buffer for snprintf destination
add patch to fix ceph_vxattrcb_layout return value
v2: drop bogus EXPORT_SYMBOL of static function

This is the 4th posting of this patchset. In this variant, we add a new
variatic static function that uses an internal buffer and calls
vsnprintf to do the formatting, and then memcpys the result into the
buffer. This also adds a bit of type-sanity cleanup of the vxattr
handling in general.

Most of the rationale for this set is in the description of the last
patch of the series.

Jeff Layton (3):
ceph: make getxattr_cb return ssize_t
ceph: return -ERANGE if virtual xattr value didn't fit in buffer
ceph: don't NULL terminate virtual xattrs

fs/ceph/xattr.c | 182 ++++++++++++++++++++++++++++--------------------
1 file changed, 108 insertions(+), 74 deletions(-)