struct osc_punch_cbargs *cbargs = &oio->oi_punch_cbarg;
struct obd_capa *capa;
loff_t size = io->u.ci_truncate.tr_size;
- int result;
+ int result = 0;
+
memset(oa, 0, sizeof(*oa));
osc_trunc_check(env, io, oio, size);
- cl_object_attr_lock(obj);
- result = cl_object_attr_get(env, obj, attr);
- if (result == 0) {
- attr->cat_size = attr->cat_kms = size;
- result = cl_object_attr_set(env, obj, attr, CAT_SIZE|CAT_KMS);
+ if (oio->oi_lockless == 0) {
+ cl_object_attr_lock(obj);
+ result = cl_object_attr_get(env, obj, attr);
+ if (result == 0) {
+ attr->cat_size = attr->cat_kms = size;
+ result = cl_object_attr_set(env, obj, attr,
+ CAT_SIZE|CAT_KMS);
+ }
+ cl_object_attr_unlock(obj);
}
- cl_object_attr_unlock(obj);
if (result == 0) {
oa->o_id = loi->loi_id;