diff options
Diffstat (limited to 'fs/ceph/xattr.c')
-rw-r--r-- | fs/ceph/xattr.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c index 8294f461ecd1..35b86331d8a5 100644 --- a/fs/ceph/xattr.c +++ b/fs/ceph/xattr.c | |||
@@ -79,7 +79,7 @@ static size_t ceph_vxattrcb_dir_rbytes(struct ceph_inode_info *ci, char *val, | |||
79 | static size_t ceph_vxattrcb_dir_rctime(struct ceph_inode_info *ci, char *val, | 79 | static size_t ceph_vxattrcb_dir_rctime(struct ceph_inode_info *ci, char *val, |
80 | size_t size) | 80 | size_t size) |
81 | { | 81 | { |
82 | return snprintf(val, size, "%ld.%ld", (long)ci->i_rctime.tv_sec, | 82 | return snprintf(val, size, "%ld.09%ld", (long)ci->i_rctime.tv_sec, |
83 | (long)ci->i_rctime.tv_nsec); | 83 | (long)ci->i_rctime.tv_nsec); |
84 | } | 84 | } |
85 | 85 | ||
@@ -118,10 +118,15 @@ static size_t ceph_vxattrcb_file_layout(struct ceph_inode_info *ci, char *val, | |||
118 | (unsigned long long)ceph_file_layout_su(ci->i_layout), | 118 | (unsigned long long)ceph_file_layout_su(ci->i_layout), |
119 | (unsigned long long)ceph_file_layout_stripe_count(ci->i_layout), | 119 | (unsigned long long)ceph_file_layout_stripe_count(ci->i_layout), |
120 | (unsigned long long)ceph_file_layout_object_size(ci->i_layout)); | 120 | (unsigned long long)ceph_file_layout_object_size(ci->i_layout)); |
121 | if (ceph_file_layout_pg_preferred(ci->i_layout)) | 121 | |
122 | ret += snprintf(val + ret, size, "preferred_osd=%lld\n", | 122 | if (ceph_file_layout_pg_preferred(ci->i_layout) >= 0) { |
123 | val += ret; | ||
124 | size -= ret; | ||
125 | ret += snprintf(val, size, "preferred_osd=%lld\n", | ||
123 | (unsigned long long)ceph_file_layout_pg_preferred( | 126 | (unsigned long long)ceph_file_layout_pg_preferred( |
124 | ci->i_layout)); | 127 | ci->i_layout)); |
128 | } | ||
129 | |||
125 | return ret; | 130 | return ret; |
126 | } | 131 | } |
127 | 132 | ||