}
if (rc != 0) {
- if (imp->imp_state != LUSTRE_IMP_CLOSED && !imp->imp_deactive) {
+ if (imp->imp_state != LUSTRE_IMP_CLOSED &&
+ !imp->imp_deactive &&
+ imp->imp_connect_flags_orig & OBD_CONNECT_MDS_MDS &&
+ rc != -ENOTSUPP) {
/* Since LWP is not replayable, so it will keep
- * trying unless umount happens, otherwise it would
- * cause unecessary failure of the application. */
+ * trying unless umount happens or the remote
+ * target does not support the operation, otherwise
+ * it would cause unecessary failure of the
+ * application. */
ptlrpc_req_finished(req);
rc = 0;
goto again;
* then try next target in the list, until trying all targets
* or fld lookup succeeds */
spin_lock(&fld->lcf_lock);
- if (target->ft_chain.next == fld->lcf_targets.prev)
- target = list_entry(fld->lcf_targets.next,
+
+ /* If the next entry in the list is the head of the list,
+ * move to the next entry after the head and retrieve
+ * the target. Else retreive the next target entry. */
+
+ if (target->ft_chain.next == &fld->lcf_targets)
+ target = list_entry(target->ft_chain.next->next,
struct lu_fld_target, ft_chain);
else
target = list_entry(target->ft_chain.next,
struct proc_dir_entry *fld_type_proc_dir;
-static int __init fld_mod_init(void)
+static int __init fld_init(void)
{
fld_type_proc_dir = lprocfs_register(LUSTRE_FLD_NAME,
proc_lustre_root,
return 0;
}
-static void __exit fld_mod_exit(void)
+static void __exit fld_exit(void)
{
#ifdef HAVE_SERVER_SUPPORT
fld_server_mod_exit();
}
MODULE_AUTHOR("OpenSFS, Inc. <http://www.lustre.org/>");
-MODULE_DESCRIPTION("Lustre FLD");
+MODULE_DESCRIPTION("Lustre FID Location Database");
MODULE_VERSION(LUSTRE_VERSION_STRING);
MODULE_LICENSE("GPL");
-module_init(fld_mod_init);
-module_exit(fld_mod_exit);
+module_init(fld_init);
+module_exit(fld_exit);