On 10-09-14 15:50, Sunil Mushran wrote:
> Add heartbeat mode parameter to the configfs tree. This will be used
> to set/show the heartbeat mode. The user is free to toggle the mode
> between local and global as long as there is no active heartbeat region.
> 
> Signed-off-by: Sunil Mushran <[email protected]>
> ---
>  fs/ocfs2/cluster/heartbeat.c |   70 
> ++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 70 insertions(+), 0 deletions(-)
> 
> diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c
> index 41d5f1f..57cc715 100644
> --- a/fs/ocfs2/cluster/heartbeat.c
> +++ b/fs/ocfs2/cluster/heartbeat.c
> @@ -77,7 +77,19 @@ static struct o2hb_callback *hbcall_from_type(enum 
> o2hb_callback_type type);
>  
> +static
> +ssize_t o2hb_heartbeat_group_mode_store(struct o2hb_heartbeat_group *group,
> +                                     const char *page, size_t count)
> +{
> +     unsigned int i;
> +     int ret;
> +     size_t len;
> +
> +     len = (page[count - 1] == '\n') ? count - 1 : count;

How about adding
 
+       if (!len)
+               return -EINVAL;

In case len is 0(though userspace should take care of this), strnicmp() returns 
"match".
And the mode will be set to O2HB_HEARTBEAT_LOCAL unexpectedly.

regards,
wengang.
> +
> +     for (i = 0; i < O2HB_HEARTBEAT_NUM_MODES; ++i) {
> +             if (strnicmp(page, o2hb_heartbeat_mode_desc[i], len))
> +                     continue;
> +
> +             ret = o2hb_global_hearbeat_mode_set(i);
> +             if (!ret)
> +                     printk(KERN_NOTICE "ocfs2: Heartbeat mode set to %s\n",
> +                            o2hb_heartbeat_mode_desc[i]);
> +             return count;
> +     }
> +
> +     return -EINVAL;
> +
> +}

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

Reply via email to