[Ocfs2-devel] [PATCH 3/8] ocfs2: Handle non-const dentry->d_op

Sunil Mushran sunil.mushran at oracle.com
Tue Nov 10 17:38:25 PST 2009


Mainline commit e56980d451904b623573ef4966cbab768e433c79 const-ified dentry->d_op.

Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>
---
 Config.make.in    |    1 +
 configure.in      |    6 ++++++
 fs/ocfs2/Makefile |    4 ++++
 fs/ocfs2/dcache.c |    4 ++++
 fs/ocfs2/dcache.h |    4 ++++
 5 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/Config.make.in b/Config.make.in
index 2c18b6f..7cda5cb 100644
--- a/Config.make.in
+++ b/Config.make.in
@@ -64,6 +64,7 @@ ADDRESS_SPACE_OPS_EXT = @ADDRESS_SPACE_OPS_EXT@
 FVERSION_IS_ULONG = @FVERSION_IS_ULONG@
 SEQ_OPS_IS_NOT_CONST = @SEQ_OPS_IS_NOT_CONST@
 IOP_IS_NOT_CONST = @IOP_IS_NOT_CONST@
+DOP_IS_NOT_CONST = @DOP_IS_NOT_CONST@
 
 
 OCFS_DEBUG = @OCFS_DEBUG@
diff --git a/configure.in b/configure.in
index 16d02c3..f79da91 100644
--- a/configure.in
+++ b/configure.in
@@ -242,6 +242,12 @@ OCFS2_CHECK_KERNEL([inode->i_op has the const modifier in fs.h], fs.h,
 AC_SUBST(IOP_IS_NOT_CONST)
 
 
+DOP_IS_NOT_CONST=
+OCFS2_CHECK_KERNEL([dentry->d_op has the const modifier in dcache.h], dcache.h,
+  , DOP_IS_NOT_CONST=yes, [^.*const struct dentry_operations \*d_op;])
+AC_SUBST(DOP_IS_NOT_CONST)
+
+
 # End kapi_compat checks
 
 # using -include has two advantages:
diff --git a/fs/ocfs2/Makefile b/fs/ocfs2/Makefile
index e66665a..4e1a0e6 100644
--- a/fs/ocfs2/Makefile
+++ b/fs/ocfs2/Makefile
@@ -64,6 +64,10 @@ ifdef IOP_IS_NOT_CONST
 EXTRA_CFLAGS += -DIOP_IS_NOT_CONST
 endif
 
+ifdef DOP_IS_NOT_CONST
+EXTRA_CFLAGS += -DDOP_IS_NOT_CONST
+endif
+
 #
 # Since SUBDIRS means something to kbuild, define them safely.  Do not
 # include trailing slashes.
diff --git a/fs/ocfs2/dcache.c b/fs/ocfs2/dcache.c
index 8ad82bc..55a3fdb 100644
--- a/fs/ocfs2/dcache.c
+++ b/fs/ocfs2/dcache.c
@@ -500,7 +500,11 @@ out_move:
 	d_move(dentry, target);
 }
 
+#ifdef DOP_IS_NOT_CONST
+struct dentry_operations ocfs2_dentry_ops = {
+#else
 const struct dentry_operations ocfs2_dentry_ops = {
+#endif
 	.d_revalidate		= ocfs2_dentry_revalidate,
 	.d_iput			= ocfs2_dentry_iput,
 };
diff --git a/fs/ocfs2/dcache.h b/fs/ocfs2/dcache.h
index d13a087..2703a1a 100644
--- a/fs/ocfs2/dcache.h
+++ b/fs/ocfs2/dcache.h
@@ -26,7 +26,11 @@
 #ifndef OCFS2_DCACHE_H
 #define OCFS2_DCACHE_H
 
+#ifdef DOP_IS_NOT_CONST
+extern struct dentry_operations ocfs2_dentry_ops;
+#else
 extern const struct dentry_operations ocfs2_dentry_ops;
+#endif
 
 struct ocfs2_dentry_lock {
 	/* Use count of dentry lock */
-- 
1.5.6.5




More information about the Ocfs2-devel mailing list