diff options
Diffstat (limited to 'fs/dlm/lockspace.c')
| -rw-r--r-- | fs/dlm/lockspace.c | 33 | 
1 files changed, 22 insertions, 11 deletions
diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c index 88556dc0458..f3e72787e7f 100644 --- a/fs/dlm/lockspace.c +++ b/fs/dlm/lockspace.c @@ -35,8 +35,11 @@ static struct task_struct *	scand_task;  static ssize_t dlm_control_store(struct dlm_ls *ls, const char *buf, size_t len)  {  	ssize_t ret = len; -	int n = simple_strtol(buf, NULL, 0); +	int n; +	int rc = kstrtoint(buf, 0, &n); +	if (rc) +		return rc;  	ls = dlm_find_lockspace_local(ls->ls_local_handle);  	if (!ls)  		return -EINVAL; @@ -57,7 +60,10 @@ static ssize_t dlm_control_store(struct dlm_ls *ls, const char *buf, size_t len)  static ssize_t dlm_event_store(struct dlm_ls *ls, const char *buf, size_t len)  { -	ls->ls_uevent_result = simple_strtol(buf, NULL, 0); +	int rc = kstrtoint(buf, 0, &ls->ls_uevent_result); + +	if (rc) +		return rc;  	set_bit(LSFL_UEVENT_WAIT, &ls->ls_flags);  	wake_up(&ls->ls_uevent_wait);  	return len; @@ -70,7 +76,10 @@ static ssize_t dlm_id_show(struct dlm_ls *ls, char *buf)  static ssize_t dlm_id_store(struct dlm_ls *ls, const char *buf, size_t len)  { -	ls->ls_global_id = simple_strtoul(buf, NULL, 0); +	int rc = kstrtouint(buf, 0, &ls->ls_global_id); + +	if (rc) +		return rc;  	return len;  } @@ -81,7 +90,11 @@ static ssize_t dlm_nodir_show(struct dlm_ls *ls, char *buf)  static ssize_t dlm_nodir_store(struct dlm_ls *ls, const char *buf, size_t len)  { -	int val = simple_strtoul(buf, NULL, 0); +	int val; +	int rc = kstrtoint(buf, 0, &val); + +	if (rc) +		return rc;  	if (val == 1)  		set_bit(LSFL_NODIR, &ls->ls_flags);  	return len; @@ -190,7 +203,7 @@ static int do_uevent(struct dlm_ls *ls, int in)  	else  		kobject_uevent(&ls->ls_kobj, KOBJ_OFFLINE); -	log_debug(ls, "%s the lockspace group...", in ? "joining" : "leaving"); +	log_rinfo(ls, "%s the lockspace group...", in ? "joining" : "leaving");  	/* dlm_controld will see the uevent, do the necessary group management  	   and then write to sysfs to wake us */ @@ -198,7 +211,7 @@ static int do_uevent(struct dlm_ls *ls, int in)  	error = wait_event_interruptible(ls->ls_uevent_wait,  			test_and_clear_bit(LSFL_UEVENT_WAIT, &ls->ls_flags)); -	log_debug(ls, "group event done %d %d", error, ls->ls_uevent_result); +	log_rinfo(ls, "group event done %d %d", error, ls->ls_uevent_result);  	if (error)  		goto out; @@ -640,7 +653,7 @@ static int new_lockspace(const char *name, const char *cluster,  	dlm_create_debug_file(ls); -	log_debug(ls, "join complete"); +	log_rinfo(ls, "join complete");  	*lockspace = ls;  	return 0; @@ -706,9 +719,7 @@ static int lkb_idr_is_local(int id, void *p, void *data)  {  	struct dlm_lkb *lkb = p; -	if (!lkb->lkb_nodeid) -		return 1; -	return 0; +	return lkb->lkb_nodeid == 0 && lkb->lkb_grmode != DLM_LOCK_IV;  }  static int lkb_idr_is_any(int id, void *p, void *data) @@ -837,7 +848,7 @@ static int release_lockspace(struct dlm_ls *ls, int force)  	dlm_clear_members(ls);  	dlm_clear_members_gone(ls);  	kfree(ls->ls_node_array); -	log_debug(ls, "release_lockspace final free"); +	log_rinfo(ls, "release_lockspace final free");  	kobject_put(&ls->ls_kobj);  	/* The ls structure will be freed when the kobject is done with */  | 
