[Ocfs2-devel] Re: [patch 4/5] ocfs2: Add check for const
address_space_operations
Sunil Mushran
Sunil.Mushran at oracle.com
Fri Feb 1 15:37:12 PST 2008
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 at suse.com>
>
Signed-off-by: Sunil Mushran <sunil.mushran at 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);
>
>
>
More information about the Ocfs2-devel
mailing list