std::string firstObjOid = getObjectId(soid, 0);
try {
RadosExclusiveLock lock(&m_ioCtx, firstObjOid);
+ // load layout and size
+ ceph_file_layout layout;
+ uint64_t original_size;
+ int rc = internal_get_layout_and_size(firstObjOid, &layout, &original_size);
+ if (rc) return rc;
+ if (size < original_size) {
+ rc = truncate(soid, original_size, size, layout);
+ } else if (size > original_size) {
+ rc = grow(soid, original_size, size, layout);
+ }
+ return rc;
} catch (ErrorCode &e) {
return e.m_code;
}
- // load layout and size
- ceph_file_layout layout;
- uint64_t original_size;
- int rc = internal_get_layout_and_size(firstObjOid, &layout, &original_size);
- if (rc) return rc;
- if (size < original_size) {
- rc = truncate(soid, original_size, size, layout);
- } else if (size > original_size) {
- rc = grow(soid, original_size, size, layout);
- }
- return rc;
}
///////////////////////// private helpers /////////////////////////////