EXPORT_SYMBOL(it_open_error);
/* this must be called on a lockh that is known to have a referenced lock */
-int mdc_set_lock_data(struct obd_export *exp, __u64 *lockh, void *data)
+int mdc_set_lock_data(struct obd_export *exp, __u64 *lockh, void *data,
+ __u32 *bits)
{
struct ldlm_lock *lock;
ENTRY;
+ if(bits)
+ *bits = 0;
+
if (!*lockh) {
EXIT;
RETURN(0);
}
#endif
lock->l_ast_data = data;
+ if (bits)
+ *bits = lock->l_policy_data.l_inodebits.bits;
+
unlock_res_and_lock(lock);
LDLM_LOCK_PUT(lock);
void *lmm;
if (req_capsule_get_size(pill, &RMF_EADATA,
RCL_CLIENT) <
- body->eadatasize) {
+ body->eadatasize)
mdc_realloc_openmsg(req, body);
- req_capsule_set_size(pill, &RMF_EADATA,
- RCL_CLIENT,
- body->eadatasize);
- }
+ else
+ req_capsule_shrink(pill, &RMF_EADATA,
+ body->eadatasize,
+ RCL_CLIENT);
+
+ req_capsule_set_size(pill, &RMF_EADATA,
+ RCL_CLIENT,
+ body->eadatasize);
+
lmm = req_capsule_client_get(pill, &RMF_EADATA);
if (lmm)
memcpy(lmm, eadata, body->eadatasize);