RETURN(-EINVAL);
}
- if (clt.cl_is_released)
+ if (clt.cl_is_released) {
rc = pcc_try_datasets_attach(inode, iot, clt.cl_layout_gen,
LU_PCC_READWRITE, cached);
- else if (clt.cl_is_rdonly)
+ } else if (clt.cl_is_rdonly) {
+ /* Not try read-only attach for data modification operations */
+ if (iot == PIT_WRITE || iot == PIT_SETATTR)
+ RETURN(0);
+
rc = pcc_try_datasets_attach(inode, iot, clt.cl_layout_gen,
LU_PCC_READONLY, cached);
+ }
if (*cached && iot != PIT_VALID_CHECK)
ll_stats_ops_tally(ll_i2sbi(inode), LPROC_LL_PCC_AUTOAT, 1);