check:
if (lsm->lsm_oinfo[stripe].loi_id != lock->l_resource->lr_name.name[0]||
lsm->lsm_oinfo[stripe].loi_gr != lock->l_resource->lr_name.name[2]){
- LDLM_ERROR(lock, "resource doesn't match object "LPU64"/"LPU64,
+ LDLM_ERROR(lock, "resource doesn't match object "LPU64"/"LPU64
+ " inode=%lu/%u (%p)\n",
lsm->lsm_oinfo[stripe].loi_id,
- lsm->lsm_oinfo[stripe].loi_gr);
+ lsm->lsm_oinfo[stripe].loi_gr,
+ inode->i_ino, inode->i_generation, inode);
RETURN(-ELDLM_NO_LOCK_DATA);
}
switch (cmd) {
case F_SETLKW:
+#ifdef F_SETLKW64
+ case F_SETLKW64:
+#endif
flags = 0;
break;
case F_SETLK:
+#ifdef F_SETLK64
+ case F_SETLK64:
+#endif
flags = LDLM_FL_BLOCK_NOWAIT;
break;
case F_GETLK:
+#ifdef F_GETLK64
+ case F_GETLK64:
+#endif
flags = LDLM_FL_TEST_LOCK;
/* Save the old mode so that if the mode in the lock changes we
* can decrement the appropriate reader or writer refcount. */
flags, mode, flock.l_flock.start, flock.l_flock.end);
obddev = md_get_real_obd(sbi->ll_mdc_exp, NULL, 0);
- rc = ldlm_cli_enqueue(sbi->ll_mdc_exp, NULL, obddev->obd_namespace,
+ rc = ldlm_cli_enqueue(obddev->obd_self_export, NULL,
+ obddev->obd_namespace,
res_id, LDLM_FLOCK, &flock, mode, &flags,
NULL, ldlm_flock_completion_ast, NULL, file_lock,
NULL, 0, NULL, &lockh);
.sendfile = generic_file_sendfile,
#endif
.fsync = ll_fsync,
- //.lock ll_file_flock
+ .lock = ll_file_flock
};
struct inode_operations ll_file_inode_operations = {