if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks))
return;
+ if (!check_access(mdr, cur, MAY_WRITE))
+ return;
+
// wait for pending truncate?
const inode_t *pi = cur->get_projected_inode();
if (pi->is_truncating()) {
if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks))
return;
+ if (!check_access(mdr, diri, MAY_WRITE))
+ return;
+
CDentry::linkage_t *dnl = dn->get_projected_linkage();
if (!dnl->is_null()) {