diff mbox

Add dlm_recover_callback_support in sysfs

Message ID 20140225152839.GA3714@shrek.hsd1.tn.comcast.net (mailing list archive)
State New, archived
Headers show

Commit Message

Goldwyn Rodrigues Feb. 25, 2014, 3:28 p.m. UTC
This is a part of the nocontrold feature which was incorporated sometime
back.

This is required for backward compatibility of the tools, specifically the
scenario where the tools with recovery callback is used with a kernel
not using the recovery callbacks (older kernel + newer tools). The tools
look for this file to understand if the kernel supports DLM recovery
callbacks.

For kernels which support recovery callbacks but will miss this patch,
ocfs2 will continue to use the older API and would still be able to
mount the filesystem.

Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>

--- 
diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
index 1324e66..c12927f 100644

Comments

Andrew Morton Feb. 25, 2014, 8:21 p.m. UTC | #1
On Tue, 25 Feb 2014 09:28:44 -0600 Goldwyn Rodrigues <rgoldwyn@suse.de> wrote:

> This is a part of the nocontrold feature which was incorporated sometime
> back.
> 
> This is required for backward compatibility of the tools, specifically the
> scenario where the tools with recovery callback is used with a kernel
> not using the recovery callbacks (older kernel + newer tools). The tools
> look for this file to understand if the kernel supports DLM recovery
> callbacks.
> 
> For kernels which support recovery callbacks but will miss this patch,
> ocfs2 will continue to use the older API and would still be able to
> mount the filesystem.
> 
> ...
>
> +static ssize_t ocfs2_dlm_recover_show(struct kobject *kobj,
> +					struct kobj_attribute *attr,
> +					char *buf)
> +{
> +	ssize_t ret;
> +	ret = snprintf(buf, PAGE_SIZE, "1\n");
> +	return ret;
> +}

That's a bit long-winded.  What's wrong with

static ssize_t ocfs2_dlm_recover_show(struct kobject *kobj,
					struct kobj_attribute *attr,
					char *buf)
{
	return snprintf(buf, PAGE_SIZE, "1\n");
}

?
Goldwyn Rodrigues Feb. 26, 2014, 1:01 p.m. UTC | #2
On 02/25/2014 02:21 PM, Andrew Morton wrote:
> On Tue, 25 Feb 2014 09:28:44 -0600 Goldwyn Rodrigues <rgoldwyn@suse.de> wrote:
>
>> This is a part of the nocontrold feature which was incorporated sometime
>> back.
>>
>> This is required for backward compatibility of the tools, specifically the
>> scenario where the tools with recovery callback is used with a kernel
>> not using the recovery callbacks (older kernel + newer tools). The tools
>> look for this file to understand if the kernel supports DLM recovery
>> callbacks.
>>
>> For kernels which support recovery callbacks but will miss this patch,
>> ocfs2 will continue to use the older API and would still be able to
>> mount the filesystem.
>>
>> ...
>>
>> +static ssize_t ocfs2_dlm_recover_show(struct kobject *kobj,
>> +					struct kobj_attribute *attr,
>> +					char *buf)
>> +{
>> +	ssize_t ret;
>> +	ret = snprintf(buf, PAGE_SIZE, "1\n");
>> +	return ret;
>> +}
>
> That's a bit long-winded.  What's wrong with
>
> static ssize_t ocfs2_dlm_recover_show(struct kobject *kobj,
> 					struct kobj_attribute *attr,
> 					char *buf)
> {
> 	return snprintf(buf, PAGE_SIZE, "1\n");
> }
>
> ?
>

Nothing. Rather, it is much better.

Thanks for the review.
diff mbox

Patch

--- a/fs/ocfs2/stackglue.c
+++ b/fs/ocfs2/stackglue.c
@@ -601,11 +601,27 @@  static struct kobj_attribute ocfs2_attr_cluster_stack =
 	       ocfs2_cluster_stack_show,
 	       ocfs2_cluster_stack_store);
 
+
+
+static ssize_t ocfs2_dlm_recover_show(struct kobject *kobj,
+					struct kobj_attribute *attr,
+					char *buf)
+{
+	ssize_t ret;
+	ret = snprintf(buf, PAGE_SIZE, "1\n");
+	return ret;
+}
+
+static struct kobj_attribute ocfs2_attr_dlm_recover_support =
+	__ATTR(dlm_recover_callback_support, S_IFREG | S_IRUGO,
+	       ocfs2_dlm_recover_show, NULL);
+
 static struct attribute *ocfs2_attrs[] = {
 	&ocfs2_attr_max_locking_protocol.attr,
 	&ocfs2_attr_loaded_cluster_plugins.attr,
 	&ocfs2_attr_active_cluster_plugin.attr,
 	&ocfs2_attr_cluster_stack.attr,
+	&ocfs2_attr_dlm_recover_support.attr,
 	NULL,
 };