client: ceph.dir.rctime xattr value incorrectly prefixes "09" to the nanoseconds component
This bug was found while investigating https://tracker.ceph.com/issues/39705 .
The following kernel logic is used to generate the ceph.dir.rctime xattr value:
224 static size_t ceph_vxattrcb_dir_rctime(struct ceph_inode_info *ci, char *val,
225 size_t size)
227 return snprintf(val, size, "%lld.09%ld", ci->i_rctime.tv_sec,
"09" is incorrectly provided as a prefix for ci->i_rctime.tv_nsec, instead of as a pad+width specifier.
This is a regression introduced ~7 years ago via 3489b42a72a41d477665ab37f196ae9257180abb (http://tracker.ceph.com/issues/2157), which was copied into libcephfs via ca6eb6128512a903a9ca31596b86bc208b9a4776 .
#3 Updated by Patrick Donnelly 5 months ago
- Subject changed from ceph.dir.rctime xattr value incorrectly prefixes "09" to the nanoseconds component to client: ceph.dir.rctime xattr value incorrectly prefixes "09" to the nanoseconds component
- Status changed from New to Need Review
- Priority changed from Normal to High
- Start date deleted (
- Backport set to nautilus,mimic,luminous
- Component(FS) Client added
- Component(FS) deleted (