2012-02-20 16:29:47

by Dan Magenheimer

[permalink] [raw]
Subject: [PATCH 1/2] staging: ramster: build ramster properly when CONFIG_OCFS2=m|y

Due to some conflicting debug vars, kernel build will warn when
CONFIG_RAMSTER=y and CONFIG_OCFS2=m and will fail when
CONFIG_RAMSTER=y and CONFIG_OCFS2=y (rare).

Rename ramster mlog vars to avoid the name conflict.

Signed-off-by: Dan Magenheimer <[email protected]>
---
drivers/staging/ramster/cluster/masklog.c | 28 ++++++++++++++--------------
drivers/staging/ramster/cluster/masklog.h | 10 +++++-----
2 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/drivers/staging/ramster/cluster/masklog.c b/drivers/staging/ramster/cluster/masklog.c
index c2af3c7..1261d85 100644
--- a/drivers/staging/ramster/cluster/masklog.c
+++ b/drivers/staging/ramster/cluster/masklog.c
@@ -28,18 +28,18 @@

#include "masklog.h"

-struct mlog_bits mlog_and_bits = MLOG_BITS_RHS(MLOG_INITIAL_AND_MASK);
-EXPORT_SYMBOL_GPL(mlog_and_bits);
-struct mlog_bits mlog_not_bits = MLOG_BITS_RHS(0);
-EXPORT_SYMBOL_GPL(mlog_not_bits);
+struct mlog_bits r2_mlog_and_bits = MLOG_BITS_RHS(MLOG_INITIAL_AND_MASK);
+EXPORT_SYMBOL_GPL(r2_mlog_and_bits);
+struct mlog_bits r2_mlog_not_bits = MLOG_BITS_RHS(0);
+EXPORT_SYMBOL_GPL(r2_mlog_not_bits);

static ssize_t mlog_mask_show(u64 mask, char *buf)
{
char *state;

- if (__mlog_test_u64(mask, mlog_and_bits))
+ if (__mlog_test_u64(mask, r2_mlog_and_bits))
state = "allow";
- else if (__mlog_test_u64(mask, mlog_not_bits))
+ else if (__mlog_test_u64(mask, r2_mlog_not_bits))
state = "deny";
else
state = "off";
@@ -50,14 +50,14 @@ static ssize_t mlog_mask_show(u64 mask, char *buf)
static ssize_t mlog_mask_store(u64 mask, const char *buf, size_t count)
{
if (!strnicmp(buf, "allow", 5)) {
- __mlog_set_u64(mask, mlog_and_bits);
- __mlog_clear_u64(mask, mlog_not_bits);
+ __mlog_set_u64(mask, r2_mlog_and_bits);
+ __mlog_clear_u64(mask, r2_mlog_not_bits);
} else if (!strnicmp(buf, "deny", 4)) {
- __mlog_set_u64(mask, mlog_not_bits);
- __mlog_clear_u64(mask, mlog_and_bits);
+ __mlog_set_u64(mask, r2_mlog_not_bits);
+ __mlog_clear_u64(mask, r2_mlog_and_bits);
} else if (!strnicmp(buf, "off", 3)) {
- __mlog_clear_u64(mask, mlog_not_bits);
- __mlog_clear_u64(mask, mlog_and_bits);
+ __mlog_clear_u64(mask, r2_mlog_not_bits);
+ __mlog_clear_u64(mask, r2_mlog_and_bits);
} else
return -EINVAL;

@@ -134,7 +134,7 @@ static struct kset mlog_kset = {
.kobj = {.ktype = &mlog_ktype},
};

-int mlog_sys_init(struct kset *r2cb_kset)
+int r2_mlog_sys_init(struct kset *r2cb_kset)
{
int i = 0;

@@ -149,7 +149,7 @@ int mlog_sys_init(struct kset *r2cb_kset)
return kset_register(&mlog_kset);
}

-void mlog_sys_shutdown(void)
+void r2_mlog_sys_shutdown(void)
{
kset_unregister(&mlog_kset);
}
diff --git a/drivers/staging/ramster/cluster/masklog.h b/drivers/staging/ramster/cluster/masklog.h
index 7609e66..918ae11 100644
--- a/drivers/staging/ramster/cluster/masklog.h
+++ b/drivers/staging/ramster/cluster/masklog.h
@@ -127,7 +127,7 @@ struct mlog_bits {
unsigned long words[MLOG_MAX_BITS / BITS_PER_LONG];
};

-extern struct mlog_bits mlog_and_bits, mlog_not_bits;
+extern struct mlog_bits r2_mlog_and_bits, r2_mlog_not_bits;

#if BITS_PER_LONG == 32

@@ -186,8 +186,8 @@ extern struct mlog_bits mlog_and_bits, mlog_not_bits;
#define mlog(mask, fmt, args...) do { \
u64 __m = MLOG_MASK_PREFIX | (mask); \
if ((__m & ML_ALLOWED_BITS) && \
- __mlog_test_u64(__m, mlog_and_bits) && \
- !__mlog_test_u64(__m, mlog_not_bits)) { \
+ __mlog_test_u64(__m, r2_mlog_and_bits) && \
+ !__mlog_test_u64(__m, r2_mlog_not_bits)) { \
if (__m & ML_ERROR) \
__mlog_printk(KERN_ERR, "ERROR: "fmt , ##args); \
else if (__m & ML_NOTICE) \
@@ -214,7 +214,7 @@ extern struct mlog_bits mlog_and_bits, mlog_not_bits;

#include <linux/kobject.h>
#include <linux/sysfs.h>
-int mlog_sys_init(struct kset *r2cb_subsys);
-void mlog_sys_shutdown(void);
+int r2_mlog_sys_init(struct kset *r2cb_subsys);
+void r2_mlog_sys_shutdown(void);

#endif /* R2CLUSTER_MASKLOG_H */
--
1.7.1


2012-02-20 16:29:43

by Dan Magenheimer

[permalink] [raw]
Subject: [PATCH 2/2] staging: ramster: Dont build ramster when CONFIGFS_FS=m

Ramster can't be a module (yet) and depends on CONFIGFS_FS=y, but
allmodconfig builds with CONFIGFS_FS=m, which breaks the build.
And forcing CONFIGFS_FS=y with select breaks the build in other ways.
So just don't build ramster unless CONFIGFS_FS=y.

Also, while we're here, add a comment as to why BROKEN is depended.

Signed-off-by: Dan Magenheimer <[email protected]>
---
drivers/staging/ramster/Kconfig | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/ramster/Kconfig b/drivers/staging/ramster/Kconfig
index b045704..8b57b87 100644
--- a/drivers/staging/ramster/Kconfig
+++ b/drivers/staging/ramster/Kconfig
@@ -1,6 +1,10 @@
+# Dependency on CONFIG_BROKEN is because there is a commit dependency
+# on a cleancache naming change to be submitted by Konrad Wilk
+# a39c00ded70339603ffe1b0ffdf3ade85bcf009a "Merge branch 'stable/cleancache.v13'
+# into linux-next. Once this commit is present, BROKEN can be removed
config RAMSTER
bool "Cross-machine RAM capacity sharing, aka peer-to-peer tmem"
- depends on (CLEANCACHE || FRONTSWAP) && CONFIGFS_FS && !ZCACHE && !XVMALLOC && !HIGHMEM && BROKEN
+ depends on (CLEANCACHE || FRONTSWAP) && CONFIGFS_FS=y && !ZCACHE && !XVMALLOC && !HIGHMEM && BROKEN
select LZO_COMPRESS
select LZO_DECOMPRESS
default n
--
1.7.1