+ /* Check update size to make sure it can fit into the buffer */
+ ureq_len = object_update_request_size(ureq);
+ update_length = offsetof(struct object_update, ou_params[0]);
+ for (i = 0; i < params_count; i++)
+ update_length += cfs_size_round(lens[i] + sizeof(*param));
+
+ if (unlikely(cfs_size_round(ureq_len + update_length) >
+ update->dur_req_len)) {
+ int new_size = update->dur_req_len;
+
+ /* enlarge object update request size */
+ while (new_size <
+ cfs_size_round(ureq_len + update_length))
+ new_size += OUT_UPDATE_BUFFER_SIZE_ADD;
+ if (new_size >= OUT_UPDATE_BUFFER_SIZE_MAX)
+ RETURN(-E2BIG);
+
+ rc = out_resize_update_req(update, new_size);
+ if (rc != 0)
+ RETURN(rc);
+
+ ureq = update->dur_req;
+ }