[Ocfs2-tools-devel] [PATCH 01/19] Ocfs2-tools: Move ocfs2 ioctl definitions from ocfs2_fs.h to newly added ocfs2_ioctl.h

Sunil Mushran sunil.mushran at oracle.com
Fri Apr 16 15:31:25 PDT 2010


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



Tristan Ye wrote:
> Currently, as we've moved all ioctl's cmds/structures from ocfs2_fs.h to ocfs2_ioctl.h
> in kernel, the tools part therefore also needs to be updated accordingly.
>
> Signed-off-by: Tristan Ye <tristan.ye at oracle.com>
> ---
>  include/ocfs2-kernel/ocfs2_fs.h    |   57 --------------------------
>  include/ocfs2-kernel/ocfs2_ioctl.h |   79 ++++++++++++++++++++++++++++++++++++
>  include/ocfs2/ocfs2.h              |    1 +
>  3 files changed, 80 insertions(+), 57 deletions(-)
>  create mode 100644 include/ocfs2-kernel/ocfs2_ioctl.h
>
> diff --git a/include/ocfs2-kernel/ocfs2_fs.h b/include/ocfs2-kernel/ocfs2_fs.h
> index c0638fc..3fb0d6c 100644
> --- a/include/ocfs2-kernel/ocfs2_fs.h
> +++ b/include/ocfs2-kernel/ocfs2_fs.h
> @@ -251,63 +251,6 @@
>  						 * refcount tree */
>  
>  /*
> - * ioctl commands
> - */
> -#define OCFS2_IOC_GETFLAGS	_IOR('f', 1, long)
> -#define OCFS2_IOC_SETFLAGS	_IOW('f', 2, long)
> -#define OCFS2_IOC32_GETFLAGS	_IOR('f', 1, int)
> -#define OCFS2_IOC32_SETFLAGS	_IOW('f', 2, int)
> -
> -/*
> - * Space reservation / allocation / free ioctls and argument structure
> - * are designed to be compatible with XFS.
> - *
> - * ALLOCSP* and FREESP* are not and will never be supported, but are
> - * included here for completeness.
> - */
> -struct ocfs2_space_resv {
> -	__s16		l_type;
> -	__s16		l_whence;
> -	__s64		l_start;
> -	__s64		l_len;		/* len == 0 means until end of file */
> -	__s32		l_sysid;
> -	__u32		l_pid;
> -	__s32		l_pad[4];	/* reserve area			    */
> -};
> -
> -#define OCFS2_IOC_ALLOCSP		_IOW ('X', 10, struct ocfs2_space_resv)
> -#define OCFS2_IOC_FREESP		_IOW ('X', 11, struct ocfs2_space_resv)
> -#define OCFS2_IOC_RESVSP		_IOW ('X', 40, struct ocfs2_space_resv)
> -#define OCFS2_IOC_UNRESVSP	_IOW ('X', 41, struct ocfs2_space_resv)
> -#define OCFS2_IOC_ALLOCSP64	_IOW ('X', 36, struct ocfs2_space_resv)
> -#define OCFS2_IOC_FREESP64	_IOW ('X', 37, struct ocfs2_space_resv)
> -#define OCFS2_IOC_RESVSP64	_IOW ('X', 42, struct ocfs2_space_resv)
> -#define OCFS2_IOC_UNRESVSP64	_IOW ('X', 43, struct ocfs2_space_resv)
> -
> -/* Used to pass group descriptor data when online resize is done */
> -struct ocfs2_new_group_input {
> -	__u64 group;		/* Group descriptor's blkno. */
> -	__u32 clusters;		/* Total number of clusters in this group */
> -	__u32 frees;		/* Total free clusters in this group */
> -	__u16 chain;		/* Chain for this group */
> -	__u16 reserved1;
> -	__u32 reserved2;
> -};
> -
> -#define OCFS2_IOC_GROUP_EXTEND	_IOW('o', 1, int)
> -#define OCFS2_IOC_GROUP_ADD	_IOW('o', 2,struct ocfs2_new_group_input)
> -#define OCFS2_IOC_GROUP_ADD64	_IOW('o', 3,struct ocfs2_new_group_input)
> -
> -/* Used to pass 2 file names to reflink. */
> -struct reflink_arguments {
> -	__u64 old_path;
> -	__u64 new_path;
> -	__u64 preserve;
> -};
> -#define OCFS2_IOC_REFLINK	_IOW('o', 4, struct reflink_arguments)
> -
> -
> -/*
>   * Journal Flags (ocfs2_dinode.id1.journal1.i_flags)
>   */
>  #define OCFS2_JOURNAL_DIRTY_FL	(0x00000001)	/* Journal needs recovery */
> diff --git a/include/ocfs2-kernel/ocfs2_ioctl.h b/include/ocfs2-kernel/ocfs2_ioctl.h
> new file mode 100644
> index 0000000..2d3420a
> --- /dev/null
> +++ b/include/ocfs2-kernel/ocfs2_ioctl.h
> @@ -0,0 +1,79 @@
> +/* -*- mode: c; c-basic-offset: 8; -*-
> + * vim: noexpandtab sw=8 ts=8 sts=0:
> + *
> + * ocfs2_ioctl.h
> + *
> + * Defines OCFS2 ioctls.
> + *
> + * Copyright (C) 2010 Oracle.  All rights reserved.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public
> + * License, version 2, as published by the Free Software Foundation.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * General Public License for more details.
> + */
> +
> +#ifndef OCFS2_IOCTL_H
> +#define OCFS2_IOCTL_H
> +
> +/*
> + * ioctl commands
> + */
> +#define OCFS2_IOC_GETFLAGS	_IOR('f', 1, long)
> +#define OCFS2_IOC_SETFLAGS	_IOW('f', 2, long)
> +#define OCFS2_IOC32_GETFLAGS	_IOR('f', 1, int)
> +#define OCFS2_IOC32_SETFLAGS	_IOW('f', 2, int)
> +
> +/*
> + * Space reservation / allocation / free ioctls and argument structure
> + * are designed to be compatible with XFS.
> + *
> + * ALLOCSP* and FREESP* are not and will never be supported, but are
> + * included here for completeness.
> + */
> +struct ocfs2_space_resv {
> +	__s16		l_type;
> +	__s16		l_whence;
> +	__s64		l_start;
> +	__s64		l_len;		/* len == 0 means until end of file */
> +	__s32		l_sysid;
> +	__u32		l_pid;
> +	__s32		l_pad[4];	/* reserve area			    */
> +};
> +
> +#define OCFS2_IOC_ALLOCSP		_IOW ('X', 10, struct ocfs2_space_resv)
> +#define OCFS2_IOC_FREESP		_IOW ('X', 11, struct ocfs2_space_resv)
> +#define OCFS2_IOC_RESVSP		_IOW ('X', 40, struct ocfs2_space_resv)
> +#define OCFS2_IOC_UNRESVSP	_IOW ('X', 41, struct ocfs2_space_resv)
> +#define OCFS2_IOC_ALLOCSP64	_IOW ('X', 36, struct ocfs2_space_resv)
> +#define OCFS2_IOC_FREESP64	_IOW ('X', 37, struct ocfs2_space_resv)
> +#define OCFS2_IOC_RESVSP64	_IOW ('X', 42, struct ocfs2_space_resv)
> +#define OCFS2_IOC_UNRESVSP64	_IOW ('X', 43, struct ocfs2_space_resv)
> +
> +/* Used to pass group descriptor data when online resize is done */
> +struct ocfs2_new_group_input {
> +	__u64 group;		/* Group descriptor's blkno. */
> +	__u32 clusters;		/* Total number of clusters in this group */
> +	__u32 frees;		/* Total free clusters in this group */
> +	__u16 chain;		/* Chain for this group */
> +	__u16 reserved1;
> +	__u32 reserved2;
> +};
> +
> +#define OCFS2_IOC_GROUP_EXTEND	_IOW('o', 1, int)
> +#define OCFS2_IOC_GROUP_ADD	_IOW('o', 2,struct ocfs2_new_group_input)
> +#define OCFS2_IOC_GROUP_ADD64	_IOW('o', 3,struct ocfs2_new_group_input)
> +
> +/* Used to pass 2 file names to reflink. */
> +struct reflink_arguments {
> +	__u64 old_path;
> +	__u64 new_path;
> +	__u64 preserve;
> +};
> +#define OCFS2_IOC_REFLINK	_IOW('o', 4, struct reflink_arguments)
> +
> +#endif /* OCFS2_IOCTL_H */
> diff --git a/include/ocfs2/ocfs2.h b/include/ocfs2/ocfs2.h
> index d527768..d91f734 100644
> --- a/include/ocfs2/ocfs2.h
> +++ b/include/ocfs2/ocfs2.h
> @@ -57,6 +57,7 @@
>  #include <ocfs2/ocfs2_err.h>
>  #include <ocfs2/jbd2.h>
>  #include <ocfs2-kernel/ocfs2_lockid.h>
> +#include <ocfs2-kernel/ocfs2_ioctl.h>
>  
>  #define OCFS2_LIB_FEATURE_INCOMPAT_SUPP		(OCFS2_FEATURE_INCOMPAT_SUPP | \
>  						 OCFS2_FEATURE_INCOMPAT_HEARTBEAT_DEV | \
>   




More information about the Ocfs2-tools-devel mailing list