[PATCH] configfs+dlm: Separate out __CONFIGFS_ATTR into configfs.h
authorSatyam Sharma <ssatyam@cse.iitk.ac.in>
Wed, 4 Jul 2007 11:07:06 +0000 (16:37 +0530)
committerMark Fasheh <mark.fasheh@oracle.com>
Tue, 10 Jul 2007 23:52:27 +0000 (16:52 -0700)
fs/dlm/config.c contains a useful generic macro called __CONFIGFS_ATTR
that is similar to sysfs' __ATTR macro that makes defining attributes
easy for any user of configfs. Separate it out into configfs.h so that
other users (forthcoming in dynamic netconsole patchset) can use it too.

Signed-off-by: Satyam Sharma <ssatyam@cse.iitk.ac.in>
Cc: David Teigland <teigland@redhat.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
fs/dlm/config.c
include/linux/configfs.h

index 5069b2cb5a1f6e3fe109d148e3a7e8cd8b0930c7..e47eb42406fab2bd4a93f8e03fd3715b98a46082 100644 (file)
@@ -133,14 +133,6 @@ static ssize_t cluster_set(struct cluster *cl, unsigned int *cl_field,
        return len;
 }
 
-#define __CONFIGFS_ATTR(_name,_mode,_read,_write) {                           \
-       .attr   = { .ca_name = __stringify(_name),                            \
-                   .ca_mode = _mode,                                         \
-                   .ca_owner = THIS_MODULE },                                \
-       .show   = _read,                                                      \
-       .store  = _write,                                                     \
-}
-
 #define CLUSTER_ATTR(name, check_zero)                                        \
 static ssize_t name##_write(struct cluster *cl, const char *buf, size_t len)  \
 {                                                                             \
index 3d4a96eb0e9b66ed614f12ecd9131925df87ad83..def7c83d43a29d05df0167e1040f14f7fae52412 100644 (file)
@@ -130,6 +130,22 @@ struct configfs_attribute {
        mode_t                  ca_mode;
 };
 
+/*
+ * Users often need to create attribute structures for their configurable
+ * attributes, containing a configfs_attribute member and function pointers
+ * for the show() and store() operations on that attribute. They can use
+ * this macro (similar to sysfs' __ATTR) to make defining attributes easier.
+ */
+#define __CONFIGFS_ATTR(_name, _mode, _show, _store)                   \
+{                                                                      \
+       .attr   = {                                                     \
+                       .ca_name = __stringify(_name),                  \
+                       .ca_mode = _mode,                               \
+                       .ca_owner = THIS_MODULE,                        \
+       },                                                              \
+       .show   = _show,                                                \
+       .store  = _store,                                               \
+}
 
 /*
  * If allow_link() exists, the item can symlink(2) out to other