All of lore.kernel.org
 help / color / mirror / Atom feed
* [Ocfs2-devel] [patch 4/5] ocfs2: Add check for const address_space_operations
  2008-01-31 12:55 [Ocfs2-devel] [patch 0/5] [patch 0/5] Compatibility fixes for SLES10 Jeff Mahoney
@ 2008-01-31 12:55 ` Jeff Mahoney
  2008-02-01 15:38   ` [Ocfs2-devel] " Sunil Mushran
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 1/5] ocfs2: add compatibility for lockdep Jeff Mahoney
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Jeff Mahoney @ 2008-01-31 12:55 UTC (permalink / raw)
  To: ocfs2-devel

 SLES10 doesn't have a const a_ops in struct address_space. This patch adds
 a check.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---

 Config.make.in    |    1 +
 configure.in      |    5 +++++
 fs/ocfs2/Makefile |    4 ++++
 fs/ocfs2/aops.c   |    4 ++++
 fs/ocfs2/inode.h  |    4 ++++
 5 files changed, 18 insertions(+)

diff --git a/Config.make.in b/Config.make.in
index dc5431b..98bf410 100644
--- a/Config.make.in
+++ b/Config.make.in
@@ -73,6 +73,7 @@ NO_GENERIC_SEGMENT_CHECKS = @NO_GENERIC_SEGMENT_CHECKS@
 SOP_IS_NOT_CONST = @SOP_IS_NOT_CONST@
 IOP_IS_NOT_CONST = @IOP_IS_NOT_CONST@
 FOP_IS_NOT_CONST = @FOP_IS_NOT_CONST@
+AOPS_IS_NOT_CONST = @AOPS_IS_NOT_CONST@
 NO_VECTORIZED_AIO = @NO_VECTORIZED_AIO@
 NO_SPLICE_FROM_PIPE = @NO_SPLICE_FROM_PIPE@
 OLD_BIO_END_IO = @OLD_BIO_END_IO@
diff --git a/configure.in b/configure.in
index 3d9e49f..a4b3f0e 100644
--- a/configure.in
+++ b/configure.in
@@ -310,6 +310,11 @@ OCFS2_CHECK_KERNEL([f_op declared as const in struct file in fs.h], fs.h,
   , FOP_IS_NOT_CONST=yes, [^.*const struct file_operations.*\*f_op;])
 AC_SUBST(FOP_IS_NOT_CONST)
 
+AOPS_IS_NOT_CONST=
+OCFS2_CHECK_KERNEL([a_ops declared as const in struct address_space in fs.h], fs.h,
+  , AOPS_IS_NOT_CONST=yes, [^.*const struct address_space_operations.*\*a_ops;])
+AC_SUBST(AOPS_IS_NOT_CONST)
+
 NO_VECTORIZED_AIO=
 OCFS2_CHECK_KERNEL([aio_read() in struct file_operations using iovec in fs.h], fs.h,
   , NO_VECTORIZED_AIO=yes, [ssize_t (\*aio_read) (struct kiocb \*, const struct iovec \*, unsigned long, loff_t);])
diff --git a/fs/ocfs2/Makefile b/fs/ocfs2/Makefile
index 5750280..c8a81c4 100644
--- a/fs/ocfs2/Makefile
+++ b/fs/ocfs2/Makefile
@@ -88,6 +88,10 @@ ifdef FOP_IS_NOT_CONST
 EXTRA_CFLAGS += -DFOP_IS_NOT_CONST
 endif
 
+ifdef AOPS_IS_NOT_CONST
+EXTRA_CFLAGS += -DAOPS_IS_NOT_CONST
+endif
+
 ifdef NO_VECTORIZED_AIO
 CFLAGS_file.o += -DNO_VECTORIZED_AIO
 endif
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 54dd079..9b2a743 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -1953,7 +1953,11 @@ int ocfs2_write_end(struct file *file, struct address_space *mapping,
 	return ret;
 }
 
+#ifdef AOPS_IS_NOT_CONST
+struct address_space_operations ocfs2_aops = {
+#else
 const struct address_space_operations ocfs2_aops = {
+#endif
 	.readpage	= ocfs2_readpage,
 	.readpages	= ocfs2_readpages,
 	.writepage	= ocfs2_writepage,
diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h
index 390a855..01437ca 100644
--- a/fs/ocfs2/inode.h
+++ b/fs/ocfs2/inode.h
@@ -111,7 +111,11 @@ static inline struct ocfs2_inode_info *OCFS2_I(struct inode *inode)
 
 extern struct kmem_cache *ocfs2_inode_cache;
 
+#ifdef AOPS_IS_NOT_CONST
+extern struct address_space_operations ocfs2_aops;
+#else
 extern const struct address_space_operations ocfs2_aops;
+#endif
 
 struct buffer_head *ocfs2_bread(struct inode *inode, int block,
 				int *err, int reada);

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] [patch 1/5] ocfs2: add compatibility for lockdep
  2008-01-31 12:55 [Ocfs2-devel] [patch 0/5] [patch 0/5] Compatibility fixes for SLES10 Jeff Mahoney
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 4/5] ocfs2: Add check for const address_space_operations Jeff Mahoney
@ 2008-01-31 12:55 ` Jeff Mahoney
  2008-02-01 15:38   ` [Ocfs2-devel] " Sunil Mushran
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 5/5] ocfs2: Add check for type of b_size in struct buffer_head Jeff Mahoney
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Jeff Mahoney @ 2008-01-31 12:55 UTC (permalink / raw)
  To: ocfs2-devel

 SLES10 doesn't have lockdep support. This patch ifdefs out the lockdep
 annotations when lockdep isn't found.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---

 Config.make.in    |    1 +
 configure.in      |    5 +++++
 fs/ocfs2/Makefile |    4 ++++
 fs/ocfs2/inode.c  |    4 ++++
 4 files changed, 14 insertions(+)

--- a/Config.make.in	2008-01-31 13:51:13.000000000 -0500
+++ b/Config.make.in	2008-01-31 13:51:15.000000000 -0500
@@ -87,6 +87,7 @@ FILLDIR_T_WITH_INO_T = @FILLDIR_T_WITH_I
 INVALIDATEPAGE_RETURNS_INT = @INVALIDATEPAGE_RETURNS_INT@
 DIO_OLD_GET_BLOCKS = @DIO_OLD_GET_BLOCKS@
 HAS_SYSTEM_UTSNAME = @HAS_SYSTEM_UTSNAME@
+NO_LOCKDEP = @NO_LOCKDEP@
 
 OCFS_DEBUG = @OCFS_DEBUG@
 
--- a/configure.in	2008-01-31 13:51:13.000000000 -0500
+++ b/configure.in	2008-01-31 13:51:15.000000000 -0500
@@ -379,6 +379,11 @@ OCFS2_CHECK_KERNEL([system_utsname in ut
   HAS_SYSTEM_UTSNAME=yes, , [^extern struct new_utsname system_utsname])
 AC_SUBST(HAS_SYSTEM_UTSNAME)
 
+NO_LOCKDEP=
+OCFS2_CHECK_KERNEL([linux/lockdep.h], lockdep.h, ,
+  NO_LOCKDEP=yes, [^struct lock_class {])
+AC_SUBST(NO_LOCKDEP)
+
 # using -include has two advantages:
 #  the source doesn't need to know to include compat headers
 #  the compat header file names don't go through the search path
--- a/fs/ocfs2/Makefile	2008-01-31 13:51:13.000000000 -0500
+++ b/fs/ocfs2/Makefile	2008-01-31 13:51:15.000000000 -0500
@@ -136,6 +136,10 @@ ifdef DIO_OLD_GET_BLOCKS
 EXTRA_CFLAGS += -DDIO_OLD_GET_BLOCKS
 endif
 
+ifdef NO_LOCKDEP
+EXTRA_CFLAGS += -DNO_LOCKDEP
+endif
+
 #
 # Since SUBDIRS means something to kbuild, define them safely.  Do not
 # include trailing slashes.
--- a/fs/ocfs2/inode.c	2008-01-31 13:51:13.000000000 -0500
+++ b/fs/ocfs2/inode.c	2008-01-31 13:51:15.000000000 -0500
@@ -60,7 +60,9 @@ struct ocfs2_find_inode_args
 	unsigned int	fi_sysfile_type;
 };
 
+#ifndef NO_LOCKDEP
 static struct lock_class_key ocfs2_sysfile_lock_key[NUM_SYSTEM_INODES];
+#endif
 
 static int ocfs2_read_locked_inode(struct inode *inode,
 				   struct ocfs2_find_inode_args *args);
@@ -205,9 +207,11 @@ static int ocfs2_init_locked_inode(struc
 
 	inode->i_ino = args->fi_ino;
 	OCFS2_I(inode)->ip_blkno = args->fi_blkno;
+#ifndef NO_LOCKDEP
 	if (args->fi_sysfile_type != 0)
 		lockdep_set_class(&inode->i_mutex,
 			&ocfs2_sysfile_lock_key[args->fi_sysfile_type]);
+#endif
 
 	mlog_exit(0);
 	return 0;

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] [patch 5/5] ocfs2: Add check for type of b_size in struct buffer_head
  2008-01-31 12:55 [Ocfs2-devel] [patch 0/5] [patch 0/5] Compatibility fixes for SLES10 Jeff Mahoney
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 4/5] ocfs2: Add check for const address_space_operations Jeff Mahoney
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 1/5] ocfs2: add compatibility for lockdep Jeff Mahoney
@ 2008-01-31 12:55 ` Jeff Mahoney
  2008-02-01 15:38   ` [Ocfs2-devel] " Sunil Mushran
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 3/5] ocfs2: Add check for const file_operations Jeff Mahoney
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Jeff Mahoney @ 2008-01-31 12:55 UTC (permalink / raw)
  To: ocfs2-devel

 SLES10 has a b_size of type u32, not size_t in struct buffer_head. This
 patch adds a check.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---

 Config.make.in     |    1 +
 configure.in       |    5 +++++
 fs/ocfs2/Makefile  |    4 ++++
 fs/ocfs2/journal.c |    7 ++++++-
 4 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/Config.make.in b/Config.make.in
index 98bf410..24740c1 100644
--- a/Config.make.in
+++ b/Config.make.in
@@ -77,6 +77,7 @@ AOPS_IS_NOT_CONST = @AOPS_IS_NOT_CONST@
 NO_VECTORIZED_AIO = @NO_VECTORIZED_AIO@
 NO_SPLICE_FROM_PIPE = @NO_SPLICE_FROM_PIPE@
 OLD_BIO_END_IO = @OLD_BIO_END_IO@
+B_SIZE_IS_U32 = @B_SIZE_IS_U32@
 NO_EXPORTFS_HEADER = @NO_EXPORTFS_HEADER@
 WRITEBACK_CONTROL_NO_RANGE_PREFIX = @WRITEBACK_CONTROL_NO_RANGE_PREFIX@
 NO_SYNC_FILE_FLAGS = @NO_SYNC_FILE_FLAGS@
diff --git a/configure.in b/configure.in
index a4b3f0e..c783d4a 100644
--- a/configure.in
+++ b/configure.in
@@ -331,6 +331,11 @@ OCFS2_CHECK_KERNEL([old bio_end_io_t in bio.h], bio.h,
   OLD_BIO_END_IO=yes, , [^typedef int (bio_end_io_t) (struct bio \*, unsigned int, int);])
 AC_SUBST(OLD_BIO_END_IO)
 
+B_SIZE_IS_U32=
+OCFS2_CHECK_KERNEL([b_size is u32 struct buffer_head in buffer_head.h], buffer_head.h,
+ B_SIZE_IS_U32=yes, , [^	u32 b_size;])
+AC_SUBST(B_SIZE_IS_U32)
+
 NO_EXPORTFS_HEADER=
 OCFS2_CHECK_KERNEL([exportfs.h], exportfs.h,
   , NO_EXPORTFS_HEADER=yes, [^struct export_operations {])
diff --git a/fs/ocfs2/Makefile b/fs/ocfs2/Makefile
index c8a81c4..af47a25 100644
--- a/fs/ocfs2/Makefile
+++ b/fs/ocfs2/Makefile
@@ -100,6 +100,10 @@ ifdef NO_SPLICE_FROM_PIPE
 EXTRA_CFLAGS += -DNO_SPLICE_FROM_PIPE
 endif
 
+ifdef B_SIZE_IS_U32
+EXTRA_CFLAGS += -DB_SIZE_IS_U32
+endif
+
 ifdef NO_EXPORTFS_HEADER
 EXTRA_CFLAGS += -DNO_EXPORTFS_HEADER
 endif
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index 0332505..907a1bf 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -235,7 +235,12 @@ int ocfs2_journal_access(handle_t *handle,
 	BUG_ON(!handle);
 	BUG_ON(!bh);
 
-	mlog_entry("bh->b_blocknr=%llu, type=%d (\"%s\"), bh->b_size = %zu\n",
+	mlog_entry("bh->b_blocknr=%llu, type=%d (\"%s\"), bh->b_size = "
+#ifdef B_SIZE_IS_U32
+		   "%u\n",
+#else
+		   "%zu\n",
+#endif
 		   (unsigned long long)bh->b_blocknr, type,
 		   (type == OCFS2_JOURNAL_ACCESS_CREATE) ?
 		   "OCFS2_JOURNAL_ACCESS_CREATE" :

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] [patch 0/5] [patch 0/5] Compatibility fixes for SLES10
@ 2008-01-31 12:55 Jeff Mahoney
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 4/5] ocfs2: Add check for const address_space_operations Jeff Mahoney
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Jeff Mahoney @ 2008-01-31 12:55 UTC (permalink / raw)
  To: ocfs2-devel

Hi guys -

I just merged today's git tree against SLES10. There were a few
errors and a few warnings that have been there all along. This
patch set creates new checks to fix all of them.

-Jeff

--
Jeff Mahoney
SUSE Labs

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] [patch 3/5] ocfs2: Add check for const file_operations
  2008-01-31 12:55 [Ocfs2-devel] [patch 0/5] [patch 0/5] Compatibility fixes for SLES10 Jeff Mahoney
                   ` (2 preceding siblings ...)
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 5/5] ocfs2: Add check for type of b_size in struct buffer_head Jeff Mahoney
@ 2008-01-31 12:55 ` Jeff Mahoney
  2008-02-01 15:38   ` [Ocfs2-devel] " Sunil Mushran
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 2/5] ocfs2: add compatibility for mandatory_lock() Jeff Mahoney
  2008-02-01 14:09 ` [Ocfs2-devel] Re: [patch 0/5] [patch 0/5] Compatibility fixes for SLES10 Sunil Mushran
  5 siblings, 1 reply; 13+ messages in thread
From: Jeff Mahoney @ 2008-01-31 12:55 UTC (permalink / raw)
  To: ocfs2-devel

 SLES10 doesn't have a const f_op in struct file. This patch adds a check.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---

 Config.make.in        |    1 +
 configure.in          |    5 +++++
 fs/ocfs2/Makefile     |    4 ++++
 fs/ocfs2/dlm/Makefile |    4 ++++
 fs/ocfs2/dlm/dlmfs.c  |    8 ++++++++
 fs/ocfs2/dlmglue.c    |    4 ++++
 fs/ocfs2/file.c       |    8 ++++++++
 fs/ocfs2/file.h       |    5 +++++
 8 files changed, 39 insertions(+)

diff --git a/Config.make.in b/Config.make.in
index 5b58fe1..dc5431b 100644
--- a/Config.make.in
+++ b/Config.make.in
@@ -72,6 +72,7 @@ NO_SHOULD_REMOVE_SUID = @NO_SHOULD_REMOVE_SUID@
 NO_GENERIC_SEGMENT_CHECKS = @NO_GENERIC_SEGMENT_CHECKS@
 SOP_IS_NOT_CONST = @SOP_IS_NOT_CONST@
 IOP_IS_NOT_CONST = @IOP_IS_NOT_CONST@
+FOP_IS_NOT_CONST = @FOP_IS_NOT_CONST@
 NO_VECTORIZED_AIO = @NO_VECTORIZED_AIO@
 NO_SPLICE_FROM_PIPE = @NO_SPLICE_FROM_PIPE@
 OLD_BIO_END_IO = @OLD_BIO_END_IO@
diff --git a/configure.in b/configure.in
index d1ebeae..3d9e49f 100644
--- a/configure.in
+++ b/configure.in
@@ -305,6 +305,11 @@ OCFS2_CHECK_KERNEL([i_op declared as const in struct inode in fs.h], fs.h,
   , IOP_IS_NOT_CONST=yes, [^.*const struct inode_operations.*\*i_op;])
 AC_SUBST(IOP_IS_NOT_CONST)
 
+FOP_IS_NOT_CONST=
+OCFS2_CHECK_KERNEL([f_op declared as const in struct file in fs.h], fs.h,
+  , FOP_IS_NOT_CONST=yes, [^.*const struct file_operations.*\*f_op;])
+AC_SUBST(FOP_IS_NOT_CONST)
+
 NO_VECTORIZED_AIO=
 OCFS2_CHECK_KERNEL([aio_read() in struct file_operations using iovec in fs.h], fs.h,
   , NO_VECTORIZED_AIO=yes, [ssize_t (\*aio_read) (struct kiocb \*, const struct iovec \*, unsigned long, loff_t);])
diff --git a/fs/ocfs2/Makefile b/fs/ocfs2/Makefile
index b53630d..5750280 100644
--- a/fs/ocfs2/Makefile
+++ b/fs/ocfs2/Makefile
@@ -84,6 +84,10 @@ ifdef IOP_IS_NOT_CONST
 EXTRA_CFLAGS += -DIOP_IS_NOT_CONST
 endif
 
+ifdef FOP_IS_NOT_CONST
+EXTRA_CFLAGS += -DFOP_IS_NOT_CONST
+endif
+
 ifdef NO_VECTORIZED_AIO
 CFLAGS_file.o += -DNO_VECTORIZED_AIO
 endif
diff --git a/fs/ocfs2/dlm/Makefile b/fs/ocfs2/dlm/Makefile
index 74bd019..4b718cf 100644
--- a/fs/ocfs2/dlm/Makefile
+++ b/fs/ocfs2/dlm/Makefile
@@ -46,6 +46,10 @@ ifdef IOP_IS_NOT_CONST
 EXTRA_CFLAGS += -DIOP_IS_NOT_CONST
 endif
 
+ifdef FOP_IS_NOT_CONST
+EXTRA_CFLAGS += -DFOP_IS_NOT_CONST
+endif
+
 ifdef NO_VFSMOUNT_IN_GET_SB_BDEV
 EXTRA_CFLAGS += -DNO_VFSMOUNT_IN_GET_SB_BDEV
 endif
diff --git a/fs/ocfs2/dlm/dlmfs.c b/fs/ocfs2/dlm/dlmfs.c
index ba35f76..f7e0263 100644
--- a/fs/ocfs2/dlm/dlmfs.c
+++ b/fs/ocfs2/dlm/dlmfs.c
@@ -65,7 +65,11 @@ static struct super_operations dlmfs_ops;
 #else
 static const struct super_operations dlmfs_ops;
 #endif
+#ifdef FOP_IS_NOT_CONST
+static struct file_operations dlmfs_file_operations;
+#else
 static const struct file_operations dlmfs_file_operations;
+#endif
 #ifdef IOP_IS_NOT_CONST
 static struct inode_operations dlmfs_dir_inode_operations;
 static struct inode_operations dlmfs_root_inode_operations;
@@ -546,7 +550,11 @@ static int dlmfs_fill_super(struct super_block * sb,
 	return 0;
 }
 
+#ifdef FOP_IS_NOT_CONST
+static struct file_operations dlmfs_file_operations = {
+#else
 static const struct file_operations dlmfs_file_operations = {
+#endif
 	.open		= dlmfs_file_open,
 	.release	= dlmfs_file_release,
 	.read		= dlmfs_file_read,
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c
index 9ce2881..04f9ec3 100644
--- a/fs/ocfs2/dlmglue.c
+++ b/fs/ocfs2/dlmglue.c
@@ -2441,7 +2441,11 @@ out:
 	return ret;
 }
 
+#ifdef FOP_IS_NOT_CONST
+static struct file_operations ocfs2_dlm_debug_fops = {
+#else
 static const struct file_operations ocfs2_dlm_debug_fops = {
+#endif
 	.open =		ocfs2_dlm_debug_open,
 	.release =	ocfs2_dlm_debug_release,
 	.read =		seq_read,
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index 40122fe..e068a76 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -2488,7 +2488,11 @@ const struct inode_operations ocfs2_special_file_iops = {
 	.permission	= ocfs2_permission,
 };
 
+#ifdef FOP_IS_NOT_CONST
+struct file_operations ocfs2_fops = {
+#else
 const struct file_operations ocfs2_fops = {
+#endif
 	.llseek		= generic_file_llseek,
 	.read		= do_sync_read,
 	.write		= do_sync_write,
@@ -2509,7 +2513,11 @@ const struct file_operations ocfs2_fops = {
 #endif
 };
 
+#ifdef FOP_IS_NOT_CONST
+struct file_operations ocfs2_dops = {
+#else
 const struct file_operations ocfs2_dops = {
+#endif
 	.llseek		= generic_file_llseek,
 	.read		= generic_read_dir,
 	.readdir	= ocfs2_readdir,
diff --git a/fs/ocfs2/file.h b/fs/ocfs2/file.h
index 8cf0821..2b118b8 100644
--- a/fs/ocfs2/file.h
+++ b/fs/ocfs2/file.h
@@ -26,8 +26,13 @@
 #ifndef OCFS2_FILE_H
 #define OCFS2_FILE_H
 
+#ifdef FOP_IS_NOT_CONST
+extern struct file_operations ocfs2_fops;
+extern struct file_operations ocfs2_dops;
+#else
 extern const struct file_operations ocfs2_fops;
 extern const struct file_operations ocfs2_dops;
+#endif
 #ifdef IOP_IS_NOT_CONST
 extern struct inode_operations ocfs2_file_iops;
 extern struct inode_operations ocfs2_special_file_iops;

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] [patch 2/5] ocfs2: add compatibility for mandatory_lock()
  2008-01-31 12:55 [Ocfs2-devel] [patch 0/5] [patch 0/5] Compatibility fixes for SLES10 Jeff Mahoney
                   ` (3 preceding siblings ...)
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 3/5] ocfs2: Add check for const file_operations Jeff Mahoney
@ 2008-01-31 12:55 ` Jeff Mahoney
  2008-02-01 15:38   ` [Ocfs2-devel] " Sunil Mushran
  2008-02-01 14:09 ` [Ocfs2-devel] Re: [patch 0/5] [patch 0/5] Compatibility fixes for SLES10 Sunil Mushran
  5 siblings, 1 reply; 13+ messages in thread
From: Jeff Mahoney @ 2008-01-31 12:55 UTC (permalink / raw)
  To: ocfs2-devel

 SLES10 doesn't have a mandatory_lock() function, but does support
 IS_MANDATORY() and the associated functions.

 This patch adds mandatory_lock() support.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---

 Config.make.in                       |    1 +
 configure.in                         |    6 ++++++
 fs/ocfs2/Makefile                    |    4 ++++
 kapi-compat/include/mandatory_lock.h |   27 +++++++++++++++++++++++++++
 4 files changed, 38 insertions(+)

--- a/Config.make.in	2008-01-31 13:48:44.000000000 -0500
+++ b/Config.make.in	2008-01-31 13:49:00.000000000 -0500
@@ -88,6 +88,7 @@ INVALIDATEPAGE_RETURNS_INT = @INVALIDATE
 DIO_OLD_GET_BLOCKS = @DIO_OLD_GET_BLOCKS@
 HAS_SYSTEM_UTSNAME = @HAS_SYSTEM_UTSNAME@
 NO_LOCKDEP = @NO_LOCKDEP@
+NO_MANDATORY_LOCK = @NO_MANDATORY_LOCK@
 
 OCFS_DEBUG = @OCFS_DEBUG@
 
--- a/configure.in	2008-01-31 13:48:44.000000000 -0500
+++ b/configure.in	2008-01-31 13:49:00.000000000 -0500
@@ -384,6 +384,12 @@ OCFS2_CHECK_KERNEL([linux/lockdep.h], lo
   NO_LOCKDEP=yes, [^struct lock_class {])
 AC_SUBST(NO_LOCKDEP)
 
+NO_MANDATORY_LOCK=
+OCFS2_CHECK_KERNEL([mandatory_lock() in fs.h], fs.h, ,
+  NO_MANDATORY_LOCK=yes, [^static inline int mandatory_lock(])
+AC_SUBST(NO_MANDATORY_LOCK)
+KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS mandatory_lock.h"
+
 # using -include has two advantages:
 #  the source doesn't need to know to include compat headers
 #  the compat header file names don't go through the search path
--- a/fs/ocfs2/Makefile	2008-01-31 13:48:44.000000000 -0500
+++ b/fs/ocfs2/Makefile	2008-01-31 13:49:00.000000000 -0500
@@ -140,6 +140,10 @@ ifdef NO_LOCKDEP
 EXTRA_CFLAGS += -DNO_LOCKDEP
 endif
 
+ifdef NO_MANDATORY_LOCK
+EXTRA_CFLAGS += -DNO_MANDATORY_LOCK
+endif
+
 #
 # Since SUBDIRS means something to kbuild, define them safely.  Do not
 # include trailing slashes.
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ b/kapi-compat/include/mandatory_lock.h	2008-01-31 13:49:00.000000000 -0500
@@ -0,0 +1,27 @@
+#ifndef KAPI_MANDATORY_LOCK_H
+#define KAPI_MANDATORY_LOCK_H
+
+#ifdef NO_MANDATORY_LOCK
+#include <linux/fs.h>
+/*
+ * Candidates for mandatory locking have the setgid bit set
+ * but no group execute bit -  an otherwise meaningless combination.
+ */
+
+static inline int __mandatory_lock(struct inode *ino)
+{
+        return (ino->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID;
+}
+
+/*
+ * ... and these candidates should be on MS_MANDLOCK mounted fs,
+ * otherwise these will be advisory locks
+ */
+
+static inline int mandatory_lock(struct inode *ino)
+{
+        return IS_MANDLOCK(ino) && __mandatory_lock(ino);
+}
+#endif
+
+#endif /* KAPI_MANDATORY_LOCK_H */

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] Re: [patch 0/5] [patch 0/5] Compatibility fixes for SLES10
  2008-01-31 12:55 [Ocfs2-devel] [patch 0/5] [patch 0/5] Compatibility fixes for SLES10 Jeff Mahoney
                   ` (4 preceding siblings ...)
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 2/5] ocfs2: add compatibility for mandatory_lock() Jeff Mahoney
@ 2008-02-01 14:09 ` Sunil Mushran
  2008-02-01 16:48   ` Jeff Mahoney
  5 siblings, 1 reply; 13+ messages in thread
From: Sunil Mushran @ 2008-02-01 14:09 UTC (permalink / raw)
  To: ocfs2-devel

While I've not tested it, the patches here look good.

What about the breakup of the earlier patch? Will it
be applied atop these?

Jeff Mahoney wrote:
> Hi guys -
>
> I just merged today's git tree against SLES10. There were a few
> errors and a few warnings that have been there all along. This
> patch set creates new checks to fix all of them.
>
> -Jeff
>
> --
> Jeff Mahoney
> SUSE Labs
>
>   

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] Re: [patch 5/5] ocfs2: Add check for type of b_size in struct buffer_head
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 5/5] ocfs2: Add check for type of b_size in struct buffer_head Jeff Mahoney
@ 2008-02-01 15:38   ` Sunil Mushran
  0 siblings, 0 replies; 13+ messages in thread
From: Sunil Mushran @ 2008-02-01 15:38 UTC (permalink / raw)
  To: ocfs2-devel

Jeff Mahoney wrote:
>  SLES10 has a b_size of type u32, not size_t in struct buffer_head. This
>  patch adds a check.
>
> Signed-off-by: Jeff Mahoney <jeffm@suse.com>
>   

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>

> ---
>
>  Config.make.in     |    1 +
>  configure.in       |    5 +++++
>  fs/ocfs2/Makefile  |    4 ++++
>  fs/ocfs2/journal.c |    7 ++++++-
>  4 files changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/Config.make.in b/Config.make.in
> index 98bf410..24740c1 100644
> --- a/Config.make.in
> +++ b/Config.make.in
> @@ -77,6 +77,7 @@ AOPS_IS_NOT_CONST = @AOPS_IS_NOT_CONST@
>  NO_VECTORIZED_AIO = @NO_VECTORIZED_AIO@
>  NO_SPLICE_FROM_PIPE = @NO_SPLICE_FROM_PIPE@
>  OLD_BIO_END_IO = @OLD_BIO_END_IO@
> +B_SIZE_IS_U32 = @B_SIZE_IS_U32@
>  NO_EXPORTFS_HEADER = @NO_EXPORTFS_HEADER@
>  WRITEBACK_CONTROL_NO_RANGE_PREFIX = @WRITEBACK_CONTROL_NO_RANGE_PREFIX@
>  NO_SYNC_FILE_FLAGS = @NO_SYNC_FILE_FLAGS@
> diff --git a/configure.in b/configure.in
> index a4b3f0e..c783d4a 100644
> --- a/configure.in
> +++ b/configure.in
> @@ -331,6 +331,11 @@ OCFS2_CHECK_KERNEL([old bio_end_io_t in bio.h], bio.h,
>    OLD_BIO_END_IO=yes, , [^typedef int (bio_end_io_t) (struct bio \*, unsigned int, int);])
>  AC_SUBST(OLD_BIO_END_IO)
>  
> +B_SIZE_IS_U32=
> +OCFS2_CHECK_KERNEL([b_size is u32 struct buffer_head in buffer_head.h], buffer_head.h,
> + B_SIZE_IS_U32=yes, , [^	u32 b_size;])
> +AC_SUBST(B_SIZE_IS_U32)
> +
>  NO_EXPORTFS_HEADER=
>  OCFS2_CHECK_KERNEL([exportfs.h], exportfs.h,
>    , NO_EXPORTFS_HEADER=yes, [^struct export_operations {])
> diff --git a/fs/ocfs2/Makefile b/fs/ocfs2/Makefile
> index c8a81c4..af47a25 100644
> --- a/fs/ocfs2/Makefile
> +++ b/fs/ocfs2/Makefile
> @@ -100,6 +100,10 @@ ifdef NO_SPLICE_FROM_PIPE
>  EXTRA_CFLAGS += -DNO_SPLICE_FROM_PIPE
>  endif
>  
> +ifdef B_SIZE_IS_U32
> +EXTRA_CFLAGS += -DB_SIZE_IS_U32
> +endif
> +
>  ifdef NO_EXPORTFS_HEADER
>  EXTRA_CFLAGS += -DNO_EXPORTFS_HEADER
>  endif
> diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
> index 0332505..907a1bf 100644
> --- a/fs/ocfs2/journal.c
> +++ b/fs/ocfs2/journal.c
> @@ -235,7 +235,12 @@ int ocfs2_journal_access(handle_t *handle,
>  	BUG_ON(!handle);
>  	BUG_ON(!bh);
>  
> -	mlog_entry("bh->b_blocknr=%llu, type=%d (\"%s\"), bh->b_size = %zu\n",
> +	mlog_entry("bh->b_blocknr=%llu, type=%d (\"%s\"), bh->b_size = "
> +#ifdef B_SIZE_IS_U32
> +		   "%u\n",
> +#else
> +		   "%zu\n",
> +#endif
>  		   (unsigned long long)bh->b_blocknr, type,
>  		   (type == OCFS2_JOURNAL_ACCESS_CREATE) ?
>  		   "OCFS2_JOURNAL_ACCESS_CREATE" :
>
>
>   

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] Re: [patch 4/5] ocfs2: Add check for const address_space_operations
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 4/5] ocfs2: Add check for const address_space_operations Jeff Mahoney
@ 2008-02-01 15:38   ` Sunil Mushran
  0 siblings, 0 replies; 13+ messages in thread
From: Sunil Mushran @ 2008-02-01 15:38 UTC (permalink / raw)
  To: ocfs2-devel

Jeff Mahoney wrote:
>  SLES10 doesn't have a const a_ops in struct address_space. This patch adds
>  a check.
>
> Signed-off-by: Jeff Mahoney <jeffm@suse.com>
>   

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>


> ---
>
>  Config.make.in    |    1 +
>  configure.in      |    5 +++++
>  fs/ocfs2/Makefile |    4 ++++
>  fs/ocfs2/aops.c   |    4 ++++
>  fs/ocfs2/inode.h  |    4 ++++
>  5 files changed, 18 insertions(+)
>
> diff --git a/Config.make.in b/Config.make.in
> index dc5431b..98bf410 100644
> --- a/Config.make.in
> +++ b/Config.make.in
> @@ -73,6 +73,7 @@ NO_GENERIC_SEGMENT_CHECKS = @NO_GENERIC_SEGMENT_CHECKS@
>  SOP_IS_NOT_CONST = @SOP_IS_NOT_CONST@
>  IOP_IS_NOT_CONST = @IOP_IS_NOT_CONST@
>  FOP_IS_NOT_CONST = @FOP_IS_NOT_CONST@
> +AOPS_IS_NOT_CONST = @AOPS_IS_NOT_CONST@
>  NO_VECTORIZED_AIO = @NO_VECTORIZED_AIO@
>  NO_SPLICE_FROM_PIPE = @NO_SPLICE_FROM_PIPE@
>  OLD_BIO_END_IO = @OLD_BIO_END_IO@
> diff --git a/configure.in b/configure.in
> index 3d9e49f..a4b3f0e 100644
> --- a/configure.in
> +++ b/configure.in
> @@ -310,6 +310,11 @@ OCFS2_CHECK_KERNEL([f_op declared as const in struct file in fs.h], fs.h,
>    , FOP_IS_NOT_CONST=yes, [^.*const struct file_operations.*\*f_op;])
>  AC_SUBST(FOP_IS_NOT_CONST)
>  
> +AOPS_IS_NOT_CONST=
> +OCFS2_CHECK_KERNEL([a_ops declared as const in struct address_space in fs.h], fs.h,
> +  , AOPS_IS_NOT_CONST=yes, [^.*const struct address_space_operations.*\*a_ops;])
> +AC_SUBST(AOPS_IS_NOT_CONST)
> +
>  NO_VECTORIZED_AIO=
>  OCFS2_CHECK_KERNEL([aio_read() in struct file_operations using iovec in fs.h], fs.h,
>    , NO_VECTORIZED_AIO=yes, [ssize_t (\*aio_read) (struct kiocb \*, const struct iovec \*, unsigned long, loff_t);])
> diff --git a/fs/ocfs2/Makefile b/fs/ocfs2/Makefile
> index 5750280..c8a81c4 100644
> --- a/fs/ocfs2/Makefile
> +++ b/fs/ocfs2/Makefile
> @@ -88,6 +88,10 @@ ifdef FOP_IS_NOT_CONST
>  EXTRA_CFLAGS += -DFOP_IS_NOT_CONST
>  endif
>  
> +ifdef AOPS_IS_NOT_CONST
> +EXTRA_CFLAGS += -DAOPS_IS_NOT_CONST
> +endif
> +
>  ifdef NO_VECTORIZED_AIO
>  CFLAGS_file.o += -DNO_VECTORIZED_AIO
>  endif
> diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
> index 54dd079..9b2a743 100644
> --- a/fs/ocfs2/aops.c
> +++ b/fs/ocfs2/aops.c
> @@ -1953,7 +1953,11 @@ int ocfs2_write_end(struct file *file, struct address_space *mapping,
>  	return ret;
>  }
>  
> +#ifdef AOPS_IS_NOT_CONST
> +struct address_space_operations ocfs2_aops = {
> +#else
>  const struct address_space_operations ocfs2_aops = {
> +#endif
>  	.readpage	= ocfs2_readpage,
>  	.readpages	= ocfs2_readpages,
>  	.writepage	= ocfs2_writepage,
> diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h
> index 390a855..01437ca 100644
> --- a/fs/ocfs2/inode.h
> +++ b/fs/ocfs2/inode.h
> @@ -111,7 +111,11 @@ static inline struct ocfs2_inode_info *OCFS2_I(struct inode *inode)
>  
>  extern struct kmem_cache *ocfs2_inode_cache;
>  
> +#ifdef AOPS_IS_NOT_CONST
> +extern struct address_space_operations ocfs2_aops;
> +#else
>  extern const struct address_space_operations ocfs2_aops;
> +#endif
>  
>  struct buffer_head *ocfs2_bread(struct inode *inode, int block,
>  				int *err, int reada);
>
>
>   

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] Re: [patch 2/5] ocfs2: add compatibility for mandatory_lock()
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 2/5] ocfs2: add compatibility for mandatory_lock() Jeff Mahoney
@ 2008-02-01 15:38   ` Sunil Mushran
  0 siblings, 0 replies; 13+ messages in thread
From: Sunil Mushran @ 2008-02-01 15:38 UTC (permalink / raw)
  To: ocfs2-devel

Jeff Mahoney wrote:
>  SLES10 doesn't have a mandatory_lock() function, but does support
>  IS_MANDATORY() and the associated functions.
>
>  This patch adds mandatory_lock() support.
>
> Signed-off-by: Jeff Mahoney <jeffm@suse.com>
>   

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>

> ---
>
>  Config.make.in                       |    1 +
>  configure.in                         |    6 ++++++
>  fs/ocfs2/Makefile                    |    4 ++++
>  kapi-compat/include/mandatory_lock.h |   27 +++++++++++++++++++++++++++
>  4 files changed, 38 insertions(+)
>
> --- a/Config.make.in	2008-01-31 13:48:44.000000000 -0500
> +++ b/Config.make.in	2008-01-31 13:49:00.000000000 -0500
> @@ -88,6 +88,7 @@ INVALIDATEPAGE_RETURNS_INT = @INVALIDATE
>  DIO_OLD_GET_BLOCKS = @DIO_OLD_GET_BLOCKS@
>  HAS_SYSTEM_UTSNAME = @HAS_SYSTEM_UTSNAME@
>  NO_LOCKDEP = @NO_LOCKDEP@
> +NO_MANDATORY_LOCK = @NO_MANDATORY_LOCK@
>  
>  OCFS_DEBUG = @OCFS_DEBUG@
>  
> --- a/configure.in	2008-01-31 13:48:44.000000000 -0500
> +++ b/configure.in	2008-01-31 13:49:00.000000000 -0500
> @@ -384,6 +384,12 @@ OCFS2_CHECK_KERNEL([linux/lockdep.h], lo
>    NO_LOCKDEP=yes, [^struct lock_class {])
>  AC_SUBST(NO_LOCKDEP)
>  
> +NO_MANDATORY_LOCK=
> +OCFS2_CHECK_KERNEL([mandatory_lock() in fs.h], fs.h, ,
> +  NO_MANDATORY_LOCK=yes, [^static inline int mandatory_lock(])
> +AC_SUBST(NO_MANDATORY_LOCK)
> +KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS mandatory_lock.h"
> +
>  # using -include has two advantages:
>  #  the source doesn't need to know to include compat headers
>  #  the compat header file names don't go through the search path
> --- a/fs/ocfs2/Makefile	2008-01-31 13:48:44.000000000 -0500
> +++ b/fs/ocfs2/Makefile	2008-01-31 13:49:00.000000000 -0500
> @@ -140,6 +140,10 @@ ifdef NO_LOCKDEP
>  EXTRA_CFLAGS += -DNO_LOCKDEP
>  endif
>  
> +ifdef NO_MANDATORY_LOCK
> +EXTRA_CFLAGS += -DNO_MANDATORY_LOCK
> +endif
> +
>  #
>  # Since SUBDIRS means something to kbuild, define them safely.  Do not
>  # include trailing slashes.
> --- /dev/null	1970-01-01 00:00:00.000000000 +0000
> +++ b/kapi-compat/include/mandatory_lock.h	2008-01-31 13:49:00.000000000 -0500
> @@ -0,0 +1,27 @@
> +#ifndef KAPI_MANDATORY_LOCK_H
> +#define KAPI_MANDATORY_LOCK_H
> +
> +#ifdef NO_MANDATORY_LOCK
> +#include <linux/fs.h>
> +/*
> + * Candidates for mandatory locking have the setgid bit set
> + * but no group execute bit -  an otherwise meaningless combination.
> + */
> +
> +static inline int __mandatory_lock(struct inode *ino)
> +{
> +        return (ino->i_mode & (S_ISGID | S_IXGRP)) == S_ISGID;
> +}
> +
> +/*
> + * ... and these candidates should be on MS_MANDLOCK mounted fs,
> + * otherwise these will be advisory locks
> + */
> +
> +static inline int mandatory_lock(struct inode *ino)
> +{
> +        return IS_MANDLOCK(ino) && __mandatory_lock(ino);
> +}
> +#endif
> +
> +#endif /* KAPI_MANDATORY_LOCK_H */
>
>
>   

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] Re: [patch 1/5] ocfs2: add compatibility for lockdep
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 1/5] ocfs2: add compatibility for lockdep Jeff Mahoney
@ 2008-02-01 15:38   ` Sunil Mushran
  0 siblings, 0 replies; 13+ messages in thread
From: Sunil Mushran @ 2008-02-01 15:38 UTC (permalink / raw)
  To: ocfs2-devel

Jeff Mahoney wrote:
>  SLES10 doesn't have lockdep support. This patch ifdefs out the lockdep
>  annotations when lockdep isn't found.
>
> Signed-off-by: Jeff Mahoney <jeffm@suse.com>
>   

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>


> ---
>
>  Config.make.in    |    1 +
>  configure.in      |    5 +++++
>  fs/ocfs2/Makefile |    4 ++++
>  fs/ocfs2/inode.c  |    4 ++++
>  4 files changed, 14 insertions(+)
>
> --- a/Config.make.in	2008-01-31 13:51:13.000000000 -0500
> +++ b/Config.make.in	2008-01-31 13:51:15.000000000 -0500
> @@ -87,6 +87,7 @@ FILLDIR_T_WITH_INO_T = @FILLDIR_T_WITH_I
>  INVALIDATEPAGE_RETURNS_INT = @INVALIDATEPAGE_RETURNS_INT@
>  DIO_OLD_GET_BLOCKS = @DIO_OLD_GET_BLOCKS@
>  HAS_SYSTEM_UTSNAME = @HAS_SYSTEM_UTSNAME@
> +NO_LOCKDEP = @NO_LOCKDEP@
>  
>  OCFS_DEBUG = @OCFS_DEBUG@
>  
> --- a/configure.in	2008-01-31 13:51:13.000000000 -0500
> +++ b/configure.in	2008-01-31 13:51:15.000000000 -0500
> @@ -379,6 +379,11 @@ OCFS2_CHECK_KERNEL([system_utsname in ut
>    HAS_SYSTEM_UTSNAME=yes, , [^extern struct new_utsname system_utsname])
>  AC_SUBST(HAS_SYSTEM_UTSNAME)
>  
> +NO_LOCKDEP=
> +OCFS2_CHECK_KERNEL([linux/lockdep.h], lockdep.h, ,
> +  NO_LOCKDEP=yes, [^struct lock_class {])
> +AC_SUBST(NO_LOCKDEP)
> +
>  # using -include has two advantages:
>  #  the source doesn't need to know to include compat headers
>  #  the compat header file names don't go through the search path
> --- a/fs/ocfs2/Makefile	2008-01-31 13:51:13.000000000 -0500
> +++ b/fs/ocfs2/Makefile	2008-01-31 13:51:15.000000000 -0500
> @@ -136,6 +136,10 @@ ifdef DIO_OLD_GET_BLOCKS
>  EXTRA_CFLAGS += -DDIO_OLD_GET_BLOCKS
>  endif
>  
> +ifdef NO_LOCKDEP
> +EXTRA_CFLAGS += -DNO_LOCKDEP
> +endif
> +
>  #
>  # Since SUBDIRS means something to kbuild, define them safely.  Do not
>  # include trailing slashes.
> --- a/fs/ocfs2/inode.c	2008-01-31 13:51:13.000000000 -0500
> +++ b/fs/ocfs2/inode.c	2008-01-31 13:51:15.000000000 -0500
> @@ -60,7 +60,9 @@ struct ocfs2_find_inode_args
>  	unsigned int	fi_sysfile_type;
>  };
>  
> +#ifndef NO_LOCKDEP
>  static struct lock_class_key ocfs2_sysfile_lock_key[NUM_SYSTEM_INODES];
> +#endif
>  
>  static int ocfs2_read_locked_inode(struct inode *inode,
>  				   struct ocfs2_find_inode_args *args);
> @@ -205,9 +207,11 @@ static int ocfs2_init_locked_inode(struc
>  
>  	inode->i_ino = args->fi_ino;
>  	OCFS2_I(inode)->ip_blkno = args->fi_blkno;
> +#ifndef NO_LOCKDEP
>  	if (args->fi_sysfile_type != 0)
>  		lockdep_set_class(&inode->i_mutex,
>  			&ocfs2_sysfile_lock_key[args->fi_sysfile_type]);
> +#endif
>  
>  	mlog_exit(0);
>  	return 0;
>
>
>   

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] Re: [patch 3/5] ocfs2: Add check for const file_operations
  2008-01-31 12:55 ` [Ocfs2-devel] [patch 3/5] ocfs2: Add check for const file_operations Jeff Mahoney
@ 2008-02-01 15:38   ` Sunil Mushran
  0 siblings, 0 replies; 13+ messages in thread
From: Sunil Mushran @ 2008-02-01 15:38 UTC (permalink / raw)
  To: ocfs2-devel

Jeff Mahoney wrote:
>  SLES10 doesn't have a const f_op in struct file. This patch adds a check.
>
> Signed-off-by: Jeff Mahoney <jeffm@suse.com>
>   

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>

> ---
>
>  Config.make.in        |    1 +
>  configure.in          |    5 +++++
>  fs/ocfs2/Makefile     |    4 ++++
>  fs/ocfs2/dlm/Makefile |    4 ++++
>  fs/ocfs2/dlm/dlmfs.c  |    8 ++++++++
>  fs/ocfs2/dlmglue.c    |    4 ++++
>  fs/ocfs2/file.c       |    8 ++++++++
>  fs/ocfs2/file.h       |    5 +++++
>  8 files changed, 39 insertions(+)
>
> diff --git a/Config.make.in b/Config.make.in
> index 5b58fe1..dc5431b 100644
> --- a/Config.make.in
> +++ b/Config.make.in
> @@ -72,6 +72,7 @@ NO_SHOULD_REMOVE_SUID = @NO_SHOULD_REMOVE_SUID@
>  NO_GENERIC_SEGMENT_CHECKS = @NO_GENERIC_SEGMENT_CHECKS@
>  SOP_IS_NOT_CONST = @SOP_IS_NOT_CONST@
>  IOP_IS_NOT_CONST = @IOP_IS_NOT_CONST@
> +FOP_IS_NOT_CONST = @FOP_IS_NOT_CONST@
>  NO_VECTORIZED_AIO = @NO_VECTORIZED_AIO@
>  NO_SPLICE_FROM_PIPE = @NO_SPLICE_FROM_PIPE@
>  OLD_BIO_END_IO = @OLD_BIO_END_IO@
> diff --git a/configure.in b/configure.in
> index d1ebeae..3d9e49f 100644
> --- a/configure.in
> +++ b/configure.in
> @@ -305,6 +305,11 @@ OCFS2_CHECK_KERNEL([i_op declared as const in struct inode in fs.h], fs.h,
>    , IOP_IS_NOT_CONST=yes, [^.*const struct inode_operations.*\*i_op;])
>  AC_SUBST(IOP_IS_NOT_CONST)
>  
> +FOP_IS_NOT_CONST=
> +OCFS2_CHECK_KERNEL([f_op declared as const in struct file in fs.h], fs.h,
> +  , FOP_IS_NOT_CONST=yes, [^.*const struct file_operations.*\*f_op;])
> +AC_SUBST(FOP_IS_NOT_CONST)
> +
>  NO_VECTORIZED_AIO=
>  OCFS2_CHECK_KERNEL([aio_read() in struct file_operations using iovec in fs.h], fs.h,
>    , NO_VECTORIZED_AIO=yes, [ssize_t (\*aio_read) (struct kiocb \*, const struct iovec \*, unsigned long, loff_t);])
> diff --git a/fs/ocfs2/Makefile b/fs/ocfs2/Makefile
> index b53630d..5750280 100644
> --- a/fs/ocfs2/Makefile
> +++ b/fs/ocfs2/Makefile
> @@ -84,6 +84,10 @@ ifdef IOP_IS_NOT_CONST
>  EXTRA_CFLAGS += -DIOP_IS_NOT_CONST
>  endif
>  
> +ifdef FOP_IS_NOT_CONST
> +EXTRA_CFLAGS += -DFOP_IS_NOT_CONST
> +endif
> +
>  ifdef NO_VECTORIZED_AIO
>  CFLAGS_file.o += -DNO_VECTORIZED_AIO
>  endif
> diff --git a/fs/ocfs2/dlm/Makefile b/fs/ocfs2/dlm/Makefile
> index 74bd019..4b718cf 100644
> --- a/fs/ocfs2/dlm/Makefile
> +++ b/fs/ocfs2/dlm/Makefile
> @@ -46,6 +46,10 @@ ifdef IOP_IS_NOT_CONST
>  EXTRA_CFLAGS += -DIOP_IS_NOT_CONST
>  endif
>  
> +ifdef FOP_IS_NOT_CONST
> +EXTRA_CFLAGS += -DFOP_IS_NOT_CONST
> +endif
> +
>  ifdef NO_VFSMOUNT_IN_GET_SB_BDEV
>  EXTRA_CFLAGS += -DNO_VFSMOUNT_IN_GET_SB_BDEV
>  endif
> diff --git a/fs/ocfs2/dlm/dlmfs.c b/fs/ocfs2/dlm/dlmfs.c
> index ba35f76..f7e0263 100644
> --- a/fs/ocfs2/dlm/dlmfs.c
> +++ b/fs/ocfs2/dlm/dlmfs.c
> @@ -65,7 +65,11 @@ static struct super_operations dlmfs_ops;
>  #else
>  static const struct super_operations dlmfs_ops;
>  #endif
> +#ifdef FOP_IS_NOT_CONST
> +static struct file_operations dlmfs_file_operations;
> +#else
>  static const struct file_operations dlmfs_file_operations;
> +#endif
>  #ifdef IOP_IS_NOT_CONST
>  static struct inode_operations dlmfs_dir_inode_operations;
>  static struct inode_operations dlmfs_root_inode_operations;
> @@ -546,7 +550,11 @@ static int dlmfs_fill_super(struct super_block * sb,
>  	return 0;
>  }
>  
> +#ifdef FOP_IS_NOT_CONST
> +static struct file_operations dlmfs_file_operations = {
> +#else
>  static const struct file_operations dlmfs_file_operations = {
> +#endif
>  	.open		= dlmfs_file_open,
>  	.release	= dlmfs_file_release,
>  	.read		= dlmfs_file_read,
> diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c
> index 9ce2881..04f9ec3 100644
> --- a/fs/ocfs2/dlmglue.c
> +++ b/fs/ocfs2/dlmglue.c
> @@ -2441,7 +2441,11 @@ out:
>  	return ret;
>  }
>  
> +#ifdef FOP_IS_NOT_CONST
> +static struct file_operations ocfs2_dlm_debug_fops = {
> +#else
>  static const struct file_operations ocfs2_dlm_debug_fops = {
> +#endif
>  	.open =		ocfs2_dlm_debug_open,
>  	.release =	ocfs2_dlm_debug_release,
>  	.read =		seq_read,
> diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
> index 40122fe..e068a76 100644
> --- a/fs/ocfs2/file.c
> +++ b/fs/ocfs2/file.c
> @@ -2488,7 +2488,11 @@ const struct inode_operations ocfs2_special_file_iops = {
>  	.permission	= ocfs2_permission,
>  };
>  
> +#ifdef FOP_IS_NOT_CONST
> +struct file_operations ocfs2_fops = {
> +#else
>  const struct file_operations ocfs2_fops = {
> +#endif
>  	.llseek		= generic_file_llseek,
>  	.read		= do_sync_read,
>  	.write		= do_sync_write,
> @@ -2509,7 +2513,11 @@ const struct file_operations ocfs2_fops = {
>  #endif
>  };
>  
> +#ifdef FOP_IS_NOT_CONST
> +struct file_operations ocfs2_dops = {
> +#else
>  const struct file_operations ocfs2_dops = {
> +#endif
>  	.llseek		= generic_file_llseek,
>  	.read		= generic_read_dir,
>  	.readdir	= ocfs2_readdir,
> diff --git a/fs/ocfs2/file.h b/fs/ocfs2/file.h
> index 8cf0821..2b118b8 100644
> --- a/fs/ocfs2/file.h
> +++ b/fs/ocfs2/file.h
> @@ -26,8 +26,13 @@
>  #ifndef OCFS2_FILE_H
>  #define OCFS2_FILE_H
>  
> +#ifdef FOP_IS_NOT_CONST
> +extern struct file_operations ocfs2_fops;
> +extern struct file_operations ocfs2_dops;
> +#else
>  extern const struct file_operations ocfs2_fops;
>  extern const struct file_operations ocfs2_dops;
> +#endif
>  #ifdef IOP_IS_NOT_CONST
>  extern struct inode_operations ocfs2_file_iops;
>  extern struct inode_operations ocfs2_special_file_iops;
>
>
>   

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Ocfs2-devel] Re: [patch 0/5] [patch 0/5] Compatibility fixes for SLES10
  2008-02-01 14:09 ` [Ocfs2-devel] Re: [patch 0/5] [patch 0/5] Compatibility fixes for SLES10 Sunil Mushran
@ 2008-02-01 16:48   ` Jeff Mahoney
  0 siblings, 0 replies; 13+ messages in thread
From: Jeff Mahoney @ 2008-02-01 16:48 UTC (permalink / raw)
  To: ocfs2-devel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Sunil Mushran wrote:
> While I've not tested it, the patches here look good.
> 
> What about the breakup of the earlier patch? Will it
> be applied atop these?

Hahah, oops. Those are coming. I saw the code in my git tree and thought
you'd applied them as a whole. It turns out I was just being
monumentally stupid, since I had committed them locally to the tree to
generate an easy diff. I thought it curious that the commit log had my
local machines in the email address fields. I'll have those for you over
the weekend. I apparently need more sleep. ;)

- -Jeff

> Jeff Mahoney wrote:
>> Hi guys -
>>
>> I just merged today's git tree against SLES10. There were a few
>> errors and a few warnings that have been there all along. This
>> patch set creates new checks to fix all of them.
>>
>> -Jeff
>>
>> -- 
>> Jeff Mahoney
>> SUSE Labs
>>
>>   
> 


- --
Jeff Mahoney
SUSE Labs
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4-svn0 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org

iD8DBQFHo7ihLPWxlyuTD7IRApriAJ92MWOxXj3aXfxRsLzsl+5FN/sANwCfYeLM
n9Yc+DI5Csum2xY0ftnAhGs=
=rOJW
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2008-02-01 16:48 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-31 12:55 [Ocfs2-devel] [patch 0/5] [patch 0/5] Compatibility fixes for SLES10 Jeff Mahoney
2008-01-31 12:55 ` [Ocfs2-devel] [patch 4/5] ocfs2: Add check for const address_space_operations Jeff Mahoney
2008-02-01 15:38   ` [Ocfs2-devel] " Sunil Mushran
2008-01-31 12:55 ` [Ocfs2-devel] [patch 1/5] ocfs2: add compatibility for lockdep Jeff Mahoney
2008-02-01 15:38   ` [Ocfs2-devel] " Sunil Mushran
2008-01-31 12:55 ` [Ocfs2-devel] [patch 5/5] ocfs2: Add check for type of b_size in struct buffer_head Jeff Mahoney
2008-02-01 15:38   ` [Ocfs2-devel] " Sunil Mushran
2008-01-31 12:55 ` [Ocfs2-devel] [patch 3/5] ocfs2: Add check for const file_operations Jeff Mahoney
2008-02-01 15:38   ` [Ocfs2-devel] " Sunil Mushran
2008-01-31 12:55 ` [Ocfs2-devel] [patch 2/5] ocfs2: add compatibility for mandatory_lock() Jeff Mahoney
2008-02-01 15:38   ` [Ocfs2-devel] " Sunil Mushran
2008-02-01 14:09 ` [Ocfs2-devel] Re: [patch 0/5] [patch 0/5] Compatibility fixes for SLES10 Sunil Mushran
2008-02-01 16:48   ` Jeff Mahoney

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.