MDT_CROSS_LOCK
};
+/* Special magical errno for communicaiton between mdt_reint_open()
+ * and mdt_intent_reint() which means return the lock to the client
+ * for subsequent cross ref open. Previously we used plain -EREMOTE
+ * but other functions called in that path might return it too and
+ * confuse us. This is not returned to the client. See LU-5370. */
+#define MDT_EREMOTE_OPEN (EREMOTE + 1024)
+
struct mdt_reint_record {
mdt_reint_t rr_opcode;
const struct lustre_handle *rr_handle;
return !!(exp_connect_flags(exp) & OBD_CONNECT_LVB_TYPE);
}
-/* Here we use OBD_CONNECT_DISP_STRIPE to check the client who support
- * striped directory, because it is also landed on 2.6 */
static inline bool mdt_is_striped_client(struct obd_export *exp)
{
- return exp_connect_flags(exp) & OBD_CONNECT_DISP_STRIPE;
+ return exp_connect_flags(exp) & OBD_CONNECT_DIR_STRIPE;
}
int mdt_get_disposition(struct ldlm_reply *rep, int flag);
struct mdt_object *o,
struct mdt_lock_handle *lh);
+int mdt_check_resent_lock(struct mdt_thread_info *info,
+ struct mdt_object *mo,
+ struct mdt_lock_handle *lhc);
+
int mdt_object_lock(struct mdt_thread_info *,
struct mdt_object *,
struct mdt_lock_handle *,