The range locking in OFD needs to be rounded for
compressed chunks.
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I530d7f655a1c09033b1a3668c009072874ab1d18
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/53178
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Artem Blagodarenko <ablagodarenko@ddn.com>
* its bulk descriptor and the RPC will be dropped due to failed bulk
* transfer, which is just fine.
*/
- range_lock_init(range,
- rnb[0].rnb_offset,
- rnb[obj->ioo_bufcnt - 1].rnb_offset +
- rnb[obj->ioo_bufcnt - 1].rnb_len - 1);
+ /* round range lock for compression */
+ if (chunk_size)
+ chunk_round(&begin, &end, chunk_size);
+ range_lock_init(range, begin, end - 1);
range_lock(&fo->ofo_write_tree, range);
ofd_info(env)->fti_range_locked = 1;