On 10-07-23 16:55, Sunil Mushran wrote:
> Signed-off-by: Sunil Mushran <[email protected]>
> ---
>  fs/ocfs2/dlm/dlmcommon.h |   17 ++++
>  fs/ocfs2/dlm/dlmdomain.c |  188 
> +++++++++++++++++++++++++++++++++++++++++++++-
>  2 files changed, 204 insertions(+), 1 deletions(-)
> 
> +     for (i = 0; i < O2NM_MAX_NODES && !status; ++i) {
> +             local = o2nm_get_node_by_num(i);
> +             remote = NULL;
> +             for (j = 0; j < qn->qn_numnodes; ++j) {
> +                     if (qn->qn_nodes[j].ni_nodenum == i) {
> +                             remote = &(qn->qn_nodes[j]);
> +                             break;
> +                     }
> +             }
> +
> +             if (!local && !remote)
> +                     continue;
> +
> +             if ((local && !remote) || (!local && remote))
> +                     status = -EINVAL;
> +
> +             if (!status &&
> +                 ((remote->ni_nodenum != local->nd_num) ||

ni_nodenum already checked in the for loop.
> +                  (remote->ni_ipv4_port != local->nd_ipv4_port) ||
> +                  (remote->ni_ipv4_address != local->nd_ipv4_address)))
> +                     status = -EINVAL;
> +

> +static int dlm_send_nodeinfo(struct dlm_ctxt *dlm, unsigned long *node_map)
> +{
> +     struct dlm_query_nodeinfo *qn = NULL;
> +     struct o2nm_node *node;
> +     int ret = 0, status, count, i;
> +
> +     if (find_next_bit(node_map, O2NM_MAX_NODES, 0) >= O2NM_MAX_NODES)
> +             goto bail;
> +
> +     qn = kmalloc(sizeof(struct dlm_query_nodeinfo), GFP_KERNEL);
> +     if (!qn) {
> +             ret = -ENOMEM;
> +             mlog_errno(ret);
> +             goto bail;
> +     }
> +
> +     memset(qn, 0, sizeof(struct dlm_query_nodeinfo));

Any reason we are not using kzalloc() here and in dlm_send_hbregions()?

> +     for (i = 0, count = 0; i < O2NM_MAX_NODES; ++i) {
> +             node = o2nm_get_node_by_num(i);
> +             if (!node)
> +                     continue;
> +             qn->qn_nodes[count].ni_nodenum = node->nd_num;
> +             qn->qn_nodes[count].ni_ipv4_port = node->nd_ipv4_port;
> +

> +static int dlm_query_nodeinfo_handler(struct o2net_msg *msg, u32 len,
> +                                   void *data, void **ret_data)
> +{
> +     struct dlm_query_nodeinfo *qn;
> +     struct dlm_ctxt *dlm = NULL;
> +     int locked = 0, status = 0;
> +
> +     qn = (struct dlm_query_nodeinfo *) msg->buf;
> +
> +     mlog(ML_NOTICE, "Node %u queries nodes on domain %s\n",
> +          qn->qn_nodenum, qn->qn_domain);
> +
> +     status = -EINVAL;

how about remove this line and

+       int locked = 0, status = -EINVAL;

regards,
wengang.
> +
> +     spin_lock(&dlm_domain_lock);
> +     dlm = __dlm_lookup_domain_full(qn->qn_domain, qn->qn_namelen);
> +     if (!dlm) {
> +             mlog(ML_ERROR, "Node %d queried nodes on domain %s before "
> +                  "join domain\n", qn->qn_nodenum, qn->qn_domain);
> +             goto bail;
> +     }
> +

_______________________________________________
Ocfs2-devel mailing list
[email protected]
http://oss.oracle.com/mailman/listinfo/ocfs2-devel

Reply via email to