during a forced cleanup. Otherwise, we will end up pointing to work_list,
which is on the stack, and a list_del_init() on exp_obd_chain will end up
stomping on some innocent variable on the stack, ending its already-short
life just a bit too early.
b=2908
r=robert
- fixes for glimpse AST timeouts / incorrectly 0-sized files (2818)
- don't overwrite extent policy data in reply if lock was blocked (2901)
- drop filter export grants atomically with removal from device (2663)
- fixes for glimpse AST timeouts / incorrectly 0-sized files (2818)
- don't overwrite extent policy data in reply if lock was blocked (2901)
- drop filter export grants atomically with removal from device (2663)
+ - del obd_self_export from work_list in class_disconnect_exports (2908)
2004-03-04 Cluster File Systems, Inc. <info@clusterfs.com>
* version 1.2.0
2004-03-04 Cluster File Systems, Inc. <info@clusterfs.com>
* version 1.2.0
CDEBUG(D_HA,
"exp %p export uuid == obd uuid, don't discon\n",
exp);
CDEBUG(D_HA,
"exp %p export uuid == obd uuid, don't discon\n",
exp);
+ /* Need to delete this now so we don't end up pointing
+ * to work_list later when this export is cleaned up. */
+ list_del_init(&exp->exp_obd_chain);
class_export_put(exp);
continue;
}
class_export_put(exp);
continue;
}