/*
* Liblustre client doesn't get extent locks, except for O_APPEND case
- * where [0, OBD_OBJECT_EOF] lock is taken.
+ * where [0, OBD_OBJECT_EOF] lock is taken, or truncate, where
+ * [i_size, OBD_OBJECT_EOF] lock is taken.
*/
LASSERT(ergo(LIBLUSTRE_CLIENT, type != LDLM_EXTENT ||
- (policy->l_extent.start == 0 &&
- policy->l_extent.end == OBD_OBJECT_EOF)));
+ policy->l_extent.end == OBD_OBJECT_EOF));
reply = lustre_swab_repbuf(req, 0, sizeof(*reply),
lustre_swab_ldlm_reply);
RETURN(off);
}
-/* this isn't where truncate starts. roughly:
- * sys_truncate->ll_setattr_raw->vmtruncate->ll_truncate
+/* this isn't where truncate starts. roughly:
+ * llu_iop_{open,setattr}->llu_setattr_raw->llu_vmtruncate->llu_truncate
* we grab the lock back in setattr_raw to avoid races. */
static void llu_truncate(struct inode *inode)
{
}
}
- /* Won't invoke vmtruncate, as we already cleared ATTR_SIZE */
+ /* Won't invoke llu_vmtruncate(), as we already cleared
+ * ATTR_SIZE */
inode_setattr(inode, attr);
}