diff options
author | Amir Shehata <amir.shehata@intel.com> | 2016-02-22 17:29:19 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-02-22 18:05:49 -0800 |
commit | 1a9be843eda641a2ce9d6a01c029690a754a77ad (patch) | |
tree | 9048ac330baff8f29a07c4044828353beef3377b /drivers/staging/lustre/include/linux/lnet/lib-lnet.h | |
parent | staging: lustre: prevent assert on LNet module unload (diff) | |
download | linux-dev-1a9be843eda641a2ce9d6a01c029690a754a77ad.tar.xz linux-dev-1a9be843eda641a2ce9d6a01c029690a754a77ad.zip |
staging: lustre: remove messages from lazy portal on NI shutdown
When shutting down an NI in a busy system, some messages received
on this NI, might be on the lazy portal. They would have grabbed
a ref count on the NI. Therefore NI will not be removed until
messages are processed.
In order to avoid this scenario, when an NI is shutdown go through
all messages queued on the lazy portal and drop messages for the
NI being shutdown
Signed-off-by: Amir Shehata <amir.shehata@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6040
Reviewed-on: http://review.whamcloud.com/13836
Reviewed-by: Isaac Huang <he.huang@intel.com>
Reviewed-by: Liang Zhen <liang.zhen@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/lustre/include/linux/lnet/lib-lnet.h')
-rw-r--r-- | drivers/staging/lustre/include/linux/lnet/lib-lnet.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/staging/lustre/include/linux/lnet/lib-lnet.h b/drivers/staging/lustre/include/linux/lnet/lib-lnet.h index 0928bc92c897..a5f1aecfa10a 100644 --- a/drivers/staging/lustre/include/linux/lnet/lib-lnet.h +++ b/drivers/staging/lustre/include/linux/lnet/lib-lnet.h @@ -482,6 +482,7 @@ int lnet_dyn_add_ni(lnet_pid_t requested_pid, char *nets, __s32 peer_timeout, __s32 peer_cr, __s32 peer_buf_cr, __s32 credits); int lnet_dyn_del_ni(__u32 net); +int lnet_clear_lazy_portal(struct lnet_ni *ni, int portal, char *reason); int lnet_islocalnid(lnet_nid_t nid); int lnet_islocalnet(__u32 net); |