On Wed, May 15, 2019 at 10:56 PM David Disseldorp <ddiss@xxxxxxx> wrote: > > The vxattr value incorrectly places a "09" prefix to the nanoseconds > field, instead of providing it as a zero-pad width specifier after '%'. > > Link: https://tracker.ceph.com/issues/39943 > Fixes: 3489b42a72a4 ("ceph: fix three bugs, two in ceph_vxattrcb_file_layout()") > Signed-off-by: David Disseldorp <ddiss@xxxxxxx> > --- > > @Yan, Zheng: given that the padding has been broken for so long, another > option might be to drop the "09" completely and keep it > variable width. > > fs/ceph/xattr.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c > index 0cc42c8879e9..aeb8550fb863 100644 > --- a/fs/ceph/xattr.c > +++ b/fs/ceph/xattr.c > @@ -224,7 +224,7 @@ static size_t ceph_vxattrcb_dir_rbytes(struct ceph_inode_info *ci, char *val, > static size_t ceph_vxattrcb_dir_rctime(struct ceph_inode_info *ci, char *val, > size_t size) > { > - return snprintf(val, size, "%lld.09%ld", ci->i_rctime.tv_sec, > + return snprintf(val, size, "%lld.%09ld", ci->i_rctime.tv_sec, > ci->i_rctime.tv_nsec); > } > > -- > 2.16.4 > Both patches applied. Thanks Yan, Zheng