All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jaegeuk Kim <jaegeuk@kernel.org>
To: Chao Yu <yuchao0@huawei.com>
Cc: linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net
Subject: Re: [f2fs-dev] [PATCH v2] f2fs: move ioctl interface definitions to separated file
Date: Fri, 30 Oct 2020 05:30:59 -0700	[thread overview]
Message-ID: <20201030123059.GA1877745@google.com> (raw)
In-Reply-To: <20201030072610.57155-1-yuchao0@huawei.com>

Hi Chao,

Can we make a documentation for this in f2fs.rst?

Thanks,

On 10/30, Chao Yu wrote:
> Like other filesystem does, we introduce a new file f2fs.h in path of
> include/uapi/linux/, and move f2fs-specified ioctl interface definitions
> to that file, after then, in order to use those definitions, userspace
> developer only need to include the new header file rather than
> copy & paste definitions from fs/f2fs/f2fs.h.
> 
> Signed-off-by: Chao Yu <yuchao0@huawei.com>
> ---
> v2: add missing "WITH Linux-syscall-note" for SPDX-License-Identifier
>  MAINTAINERS                 |  1 +
>  fs/f2fs/f2fs.h              | 79 ----------------------------------
>  fs/f2fs/file.c              |  1 +
>  include/trace/events/f2fs.h |  1 +
>  include/uapi/linux/f2fs.h   | 86 +++++++++++++++++++++++++++++++++++++
>  5 files changed, 89 insertions(+), 79 deletions(-)
>  create mode 100644 include/uapi/linux/f2fs.h
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index d1d4e49a695a..b79a911f1e32 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -6686,6 +6686,7 @@ F:	Documentation/filesystems/f2fs.rst
>  F:	fs/f2fs/
>  F:	include/linux/f2fs_fs.h
>  F:	include/trace/events/f2fs.h
> +F:	include/uapi/linux/f2fs.h
>  
>  F71805F HARDWARE MONITORING DRIVER
>  M:	Jean Delvare <jdelvare@suse.com>
> diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
> index cb700d797296..99bcf4b44a9c 100644
> --- a/fs/f2fs/f2fs.h
> +++ b/fs/f2fs/f2fs.h
> @@ -402,85 +402,6 @@ static inline bool __has_cursum_space(struct f2fs_journal *journal,
>  	return size <= MAX_SIT_JENTRIES(journal);
>  }
>  
> -/*
> - * f2fs-specific ioctl commands
> - */
> -#define F2FS_IOCTL_MAGIC		0xf5
> -#define F2FS_IOC_START_ATOMIC_WRITE	_IO(F2FS_IOCTL_MAGIC, 1)
> -#define F2FS_IOC_COMMIT_ATOMIC_WRITE	_IO(F2FS_IOCTL_MAGIC, 2)
> -#define F2FS_IOC_START_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 3)
> -#define F2FS_IOC_RELEASE_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 4)
> -#define F2FS_IOC_ABORT_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 5)
> -#define F2FS_IOC_GARBAGE_COLLECT	_IOW(F2FS_IOCTL_MAGIC, 6, __u32)
> -#define F2FS_IOC_WRITE_CHECKPOINT	_IO(F2FS_IOCTL_MAGIC, 7)
> -#define F2FS_IOC_DEFRAGMENT		_IOWR(F2FS_IOCTL_MAGIC, 8,	\
> -						struct f2fs_defragment)
> -#define F2FS_IOC_MOVE_RANGE		_IOWR(F2FS_IOCTL_MAGIC, 9,	\
> -						struct f2fs_move_range)
> -#define F2FS_IOC_FLUSH_DEVICE		_IOW(F2FS_IOCTL_MAGIC, 10,	\
> -						struct f2fs_flush_device)
> -#define F2FS_IOC_GARBAGE_COLLECT_RANGE	_IOW(F2FS_IOCTL_MAGIC, 11,	\
> -						struct f2fs_gc_range)
> -#define F2FS_IOC_GET_FEATURES		_IOR(F2FS_IOCTL_MAGIC, 12, __u32)
> -#define F2FS_IOC_SET_PIN_FILE		_IOW(F2FS_IOCTL_MAGIC, 13, __u32)
> -#define F2FS_IOC_GET_PIN_FILE		_IOR(F2FS_IOCTL_MAGIC, 14, __u32)
> -#define F2FS_IOC_PRECACHE_EXTENTS	_IO(F2FS_IOCTL_MAGIC, 15)
> -#define F2FS_IOC_RESIZE_FS		_IOW(F2FS_IOCTL_MAGIC, 16, __u64)
> -#define F2FS_IOC_GET_COMPRESS_BLOCKS	_IOR(F2FS_IOCTL_MAGIC, 17, __u64)
> -#define F2FS_IOC_RELEASE_COMPRESS_BLOCKS				\
> -					_IOR(F2FS_IOCTL_MAGIC, 18, __u64)
> -#define F2FS_IOC_RESERVE_COMPRESS_BLOCKS				\
> -					_IOR(F2FS_IOCTL_MAGIC, 19, __u64)
> -#define F2FS_IOC_SEC_TRIM_FILE		_IOW(F2FS_IOCTL_MAGIC, 20,	\
> -						struct f2fs_sectrim_range)
> -
> -/*
> - * should be same as XFS_IOC_GOINGDOWN.
> - * Flags for going down operation used by FS_IOC_GOINGDOWN
> - */
> -#define F2FS_IOC_SHUTDOWN	_IOR('X', 125, __u32)	/* Shutdown */
> -#define F2FS_GOING_DOWN_FULLSYNC	0x0	/* going down with full sync */
> -#define F2FS_GOING_DOWN_METASYNC	0x1	/* going down with metadata */
> -#define F2FS_GOING_DOWN_NOSYNC		0x2	/* going down */
> -#define F2FS_GOING_DOWN_METAFLUSH	0x3	/* going down with meta flush */
> -#define F2FS_GOING_DOWN_NEED_FSCK	0x4	/* going down to trigger fsck */
> -
> -/*
> - * Flags used by F2FS_IOC_SEC_TRIM_FILE
> - */
> -#define F2FS_TRIM_FILE_DISCARD		0x1	/* send discard command */
> -#define F2FS_TRIM_FILE_ZEROOUT		0x2	/* zero out */
> -#define F2FS_TRIM_FILE_MASK		0x3
> -
> -struct f2fs_gc_range {
> -	u32 sync;
> -	u64 start;
> -	u64 len;
> -};
> -
> -struct f2fs_defragment {
> -	u64 start;
> -	u64 len;
> -};
> -
> -struct f2fs_move_range {
> -	u32 dst_fd;		/* destination fd */
> -	u64 pos_in;		/* start position in src_fd */
> -	u64 pos_out;		/* start position in dst_fd */
> -	u64 len;		/* size to move */
> -};
> -
> -struct f2fs_flush_device {
> -	u32 dev_num;		/* device number to flush */
> -	u32 segments;		/* # of segments to flush */
> -};
> -
> -struct f2fs_sectrim_range {
> -	u64 start;
> -	u64 len;
> -	u64 flags;
> -};
> -
>  /* for inline stuff */
>  #define DEF_INLINE_RESERVED_SIZE	1
>  static inline int get_extra_isize(struct inode *inode);
> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
> index ee861c6d9ff0..d898f1e2764b 100644
> --- a/fs/f2fs/file.c
> +++ b/fs/f2fs/file.c
> @@ -31,6 +31,7 @@
>  #include "gc.h"
>  #include "trace.h"
>  #include <trace/events/f2fs.h>
> +#include <uapi/linux/f2fs.h>
>  
>  static vm_fault_t f2fs_filemap_fault(struct vm_fault *vmf)
>  {
> diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
> index f8f1e85ff130..56b113e3cd6a 100644
> --- a/include/trace/events/f2fs.h
> +++ b/include/trace/events/f2fs.h
> @@ -6,6 +6,7 @@
>  #define _TRACE_F2FS_H
>  
>  #include <linux/tracepoint.h>
> +#include <uapi/linux/f2fs.h>
>  
>  #define show_dev(dev)		MAJOR(dev), MINOR(dev)
>  #define show_dev_ino(entry)	show_dev(entry->dev), (unsigned long)entry->ino
> diff --git a/include/uapi/linux/f2fs.h b/include/uapi/linux/f2fs.h
> new file mode 100644
> index 000000000000..ad25786feaa1
> --- /dev/null
> +++ b/include/uapi/linux/f2fs.h
> @@ -0,0 +1,86 @@
> +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> +#ifndef _UAPI_LINUX_F2FS_H
> +#define _UAPI_LINUX_F2FS_H
> +
> +#include <linux/ioctl.h>
> +
> +/*
> + * f2fs-specific ioctl commands
> + */
> +#define F2FS_IOCTL_MAGIC		0xf5
> +#define F2FS_IOC_START_ATOMIC_WRITE	_IO(F2FS_IOCTL_MAGIC, 1)
> +#define F2FS_IOC_COMMIT_ATOMIC_WRITE	_IO(F2FS_IOCTL_MAGIC, 2)
> +#define F2FS_IOC_START_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 3)
> +#define F2FS_IOC_RELEASE_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 4)
> +#define F2FS_IOC_ABORT_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 5)
> +#define F2FS_IOC_GARBAGE_COLLECT	_IOW(F2FS_IOCTL_MAGIC, 6, __u32)
> +#define F2FS_IOC_WRITE_CHECKPOINT	_IO(F2FS_IOCTL_MAGIC, 7)
> +#define F2FS_IOC_DEFRAGMENT		_IOWR(F2FS_IOCTL_MAGIC, 8,	\
> +						struct f2fs_defragment)
> +#define F2FS_IOC_MOVE_RANGE		_IOWR(F2FS_IOCTL_MAGIC, 9,	\
> +						struct f2fs_move_range)
> +#define F2FS_IOC_FLUSH_DEVICE		_IOW(F2FS_IOCTL_MAGIC, 10,	\
> +						struct f2fs_flush_device)
> +#define F2FS_IOC_GARBAGE_COLLECT_RANGE	_IOW(F2FS_IOCTL_MAGIC, 11,	\
> +						struct f2fs_gc_range)
> +#define F2FS_IOC_GET_FEATURES		_IOR(F2FS_IOCTL_MAGIC, 12, __u32)
> +#define F2FS_IOC_SET_PIN_FILE		_IOW(F2FS_IOCTL_MAGIC, 13, __u32)
> +#define F2FS_IOC_GET_PIN_FILE		_IOR(F2FS_IOCTL_MAGIC, 14, __u32)
> +#define F2FS_IOC_PRECACHE_EXTENTS	_IO(F2FS_IOCTL_MAGIC, 15)
> +#define F2FS_IOC_RESIZE_FS		_IOW(F2FS_IOCTL_MAGIC, 16, __u64)
> +#define F2FS_IOC_GET_COMPRESS_BLOCKS	_IOR(F2FS_IOCTL_MAGIC, 17, __u64)
> +#define F2FS_IOC_RELEASE_COMPRESS_BLOCKS				\
> +					_IOR(F2FS_IOCTL_MAGIC, 18, __u64)
> +#define F2FS_IOC_RESERVE_COMPRESS_BLOCKS				\
> +					_IOR(F2FS_IOCTL_MAGIC, 19, __u64)
> +#define F2FS_IOC_SEC_TRIM_FILE		_IOW(F2FS_IOCTL_MAGIC, 20,	\
> +						struct f2fs_sectrim_range)
> +
> +/*
> + * should be same as XFS_IOC_GOINGDOWN.
> + * Flags for going down operation used by FS_IOC_GOINGDOWN
> + */
> +#define F2FS_IOC_SHUTDOWN	_IOR('X', 125, __u32)	/* Shutdown */
> +#define F2FS_GOING_DOWN_FULLSYNC	0x0	/* going down with full sync */
> +#define F2FS_GOING_DOWN_METASYNC	0x1	/* going down with metadata */
> +#define F2FS_GOING_DOWN_NOSYNC		0x2	/* going down */
> +#define F2FS_GOING_DOWN_METAFLUSH	0x3	/* going down with meta flush */
> +#define F2FS_GOING_DOWN_NEED_FSCK	0x4	/* going down to trigger fsck */
> +
> +/*
> + * Flags used by F2FS_IOC_SEC_TRIM_FILE
> + */
> +#define F2FS_TRIM_FILE_DISCARD		0x1	/* send discard command */
> +#define F2FS_TRIM_FILE_ZEROOUT		0x2	/* zero out */
> +#define F2FS_TRIM_FILE_MASK		0x3
> +
> +struct f2fs_gc_range {
> +	u32 sync;
> +	u64 start;
> +	u64 len;
> +};
> +
> +struct f2fs_defragment {
> +	u64 start;
> +	u64 len;
> +};
> +
> +struct f2fs_move_range {
> +	u32 dst_fd;		/* destination fd */
> +	u64 pos_in;		/* start position in src_fd */
> +	u64 pos_out;		/* start position in dst_fd */
> +	u64 len;		/* size to move */
> +};
> +
> +struct f2fs_flush_device {
> +	u32 dev_num;		/* device number to flush */
> +	u32 segments;		/* # of segments to flush */
> +};
> +
> +struct f2fs_sectrim_range {
> +	u64 start;
> +	u64 len;
> +	u64 flags;
> +};
> +
> +#endif /* _UAPI_LINUX_F2FS_H */
> -- 
> 2.26.2


_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

WARNING: multiple messages have this Message-ID (diff)
From: Jaegeuk Kim <jaegeuk@kernel.org>
To: Chao Yu <yuchao0@huawei.com>
Cc: linux-f2fs-devel@lists.sourceforge.net,
	linux-kernel@vger.kernel.org, chao@kernel.org
Subject: Re: [PATCH v2] f2fs: move ioctl interface definitions to separated file
Date: Fri, 30 Oct 2020 05:30:59 -0700	[thread overview]
Message-ID: <20201030123059.GA1877745@google.com> (raw)
In-Reply-To: <20201030072610.57155-1-yuchao0@huawei.com>

Hi Chao,

Can we make a documentation for this in f2fs.rst?

Thanks,

On 10/30, Chao Yu wrote:
> Like other filesystem does, we introduce a new file f2fs.h in path of
> include/uapi/linux/, and move f2fs-specified ioctl interface definitions
> to that file, after then, in order to use those definitions, userspace
> developer only need to include the new header file rather than
> copy & paste definitions from fs/f2fs/f2fs.h.
> 
> Signed-off-by: Chao Yu <yuchao0@huawei.com>
> ---
> v2: add missing "WITH Linux-syscall-note" for SPDX-License-Identifier
>  MAINTAINERS                 |  1 +
>  fs/f2fs/f2fs.h              | 79 ----------------------------------
>  fs/f2fs/file.c              |  1 +
>  include/trace/events/f2fs.h |  1 +
>  include/uapi/linux/f2fs.h   | 86 +++++++++++++++++++++++++++++++++++++
>  5 files changed, 89 insertions(+), 79 deletions(-)
>  create mode 100644 include/uapi/linux/f2fs.h
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index d1d4e49a695a..b79a911f1e32 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -6686,6 +6686,7 @@ F:	Documentation/filesystems/f2fs.rst
>  F:	fs/f2fs/
>  F:	include/linux/f2fs_fs.h
>  F:	include/trace/events/f2fs.h
> +F:	include/uapi/linux/f2fs.h
>  
>  F71805F HARDWARE MONITORING DRIVER
>  M:	Jean Delvare <jdelvare@suse.com>
> diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
> index cb700d797296..99bcf4b44a9c 100644
> --- a/fs/f2fs/f2fs.h
> +++ b/fs/f2fs/f2fs.h
> @@ -402,85 +402,6 @@ static inline bool __has_cursum_space(struct f2fs_journal *journal,
>  	return size <= MAX_SIT_JENTRIES(journal);
>  }
>  
> -/*
> - * f2fs-specific ioctl commands
> - */
> -#define F2FS_IOCTL_MAGIC		0xf5
> -#define F2FS_IOC_START_ATOMIC_WRITE	_IO(F2FS_IOCTL_MAGIC, 1)
> -#define F2FS_IOC_COMMIT_ATOMIC_WRITE	_IO(F2FS_IOCTL_MAGIC, 2)
> -#define F2FS_IOC_START_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 3)
> -#define F2FS_IOC_RELEASE_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 4)
> -#define F2FS_IOC_ABORT_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 5)
> -#define F2FS_IOC_GARBAGE_COLLECT	_IOW(F2FS_IOCTL_MAGIC, 6, __u32)
> -#define F2FS_IOC_WRITE_CHECKPOINT	_IO(F2FS_IOCTL_MAGIC, 7)
> -#define F2FS_IOC_DEFRAGMENT		_IOWR(F2FS_IOCTL_MAGIC, 8,	\
> -						struct f2fs_defragment)
> -#define F2FS_IOC_MOVE_RANGE		_IOWR(F2FS_IOCTL_MAGIC, 9,	\
> -						struct f2fs_move_range)
> -#define F2FS_IOC_FLUSH_DEVICE		_IOW(F2FS_IOCTL_MAGIC, 10,	\
> -						struct f2fs_flush_device)
> -#define F2FS_IOC_GARBAGE_COLLECT_RANGE	_IOW(F2FS_IOCTL_MAGIC, 11,	\
> -						struct f2fs_gc_range)
> -#define F2FS_IOC_GET_FEATURES		_IOR(F2FS_IOCTL_MAGIC, 12, __u32)
> -#define F2FS_IOC_SET_PIN_FILE		_IOW(F2FS_IOCTL_MAGIC, 13, __u32)
> -#define F2FS_IOC_GET_PIN_FILE		_IOR(F2FS_IOCTL_MAGIC, 14, __u32)
> -#define F2FS_IOC_PRECACHE_EXTENTS	_IO(F2FS_IOCTL_MAGIC, 15)
> -#define F2FS_IOC_RESIZE_FS		_IOW(F2FS_IOCTL_MAGIC, 16, __u64)
> -#define F2FS_IOC_GET_COMPRESS_BLOCKS	_IOR(F2FS_IOCTL_MAGIC, 17, __u64)
> -#define F2FS_IOC_RELEASE_COMPRESS_BLOCKS				\
> -					_IOR(F2FS_IOCTL_MAGIC, 18, __u64)
> -#define F2FS_IOC_RESERVE_COMPRESS_BLOCKS				\
> -					_IOR(F2FS_IOCTL_MAGIC, 19, __u64)
> -#define F2FS_IOC_SEC_TRIM_FILE		_IOW(F2FS_IOCTL_MAGIC, 20,	\
> -						struct f2fs_sectrim_range)
> -
> -/*
> - * should be same as XFS_IOC_GOINGDOWN.
> - * Flags for going down operation used by FS_IOC_GOINGDOWN
> - */
> -#define F2FS_IOC_SHUTDOWN	_IOR('X', 125, __u32)	/* Shutdown */
> -#define F2FS_GOING_DOWN_FULLSYNC	0x0	/* going down with full sync */
> -#define F2FS_GOING_DOWN_METASYNC	0x1	/* going down with metadata */
> -#define F2FS_GOING_DOWN_NOSYNC		0x2	/* going down */
> -#define F2FS_GOING_DOWN_METAFLUSH	0x3	/* going down with meta flush */
> -#define F2FS_GOING_DOWN_NEED_FSCK	0x4	/* going down to trigger fsck */
> -
> -/*
> - * Flags used by F2FS_IOC_SEC_TRIM_FILE
> - */
> -#define F2FS_TRIM_FILE_DISCARD		0x1	/* send discard command */
> -#define F2FS_TRIM_FILE_ZEROOUT		0x2	/* zero out */
> -#define F2FS_TRIM_FILE_MASK		0x3
> -
> -struct f2fs_gc_range {
> -	u32 sync;
> -	u64 start;
> -	u64 len;
> -};
> -
> -struct f2fs_defragment {
> -	u64 start;
> -	u64 len;
> -};
> -
> -struct f2fs_move_range {
> -	u32 dst_fd;		/* destination fd */
> -	u64 pos_in;		/* start position in src_fd */
> -	u64 pos_out;		/* start position in dst_fd */
> -	u64 len;		/* size to move */
> -};
> -
> -struct f2fs_flush_device {
> -	u32 dev_num;		/* device number to flush */
> -	u32 segments;		/* # of segments to flush */
> -};
> -
> -struct f2fs_sectrim_range {
> -	u64 start;
> -	u64 len;
> -	u64 flags;
> -};
> -
>  /* for inline stuff */
>  #define DEF_INLINE_RESERVED_SIZE	1
>  static inline int get_extra_isize(struct inode *inode);
> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
> index ee861c6d9ff0..d898f1e2764b 100644
> --- a/fs/f2fs/file.c
> +++ b/fs/f2fs/file.c
> @@ -31,6 +31,7 @@
>  #include "gc.h"
>  #include "trace.h"
>  #include <trace/events/f2fs.h>
> +#include <uapi/linux/f2fs.h>
>  
>  static vm_fault_t f2fs_filemap_fault(struct vm_fault *vmf)
>  {
> diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h
> index f8f1e85ff130..56b113e3cd6a 100644
> --- a/include/trace/events/f2fs.h
> +++ b/include/trace/events/f2fs.h
> @@ -6,6 +6,7 @@
>  #define _TRACE_F2FS_H
>  
>  #include <linux/tracepoint.h>
> +#include <uapi/linux/f2fs.h>
>  
>  #define show_dev(dev)		MAJOR(dev), MINOR(dev)
>  #define show_dev_ino(entry)	show_dev(entry->dev), (unsigned long)entry->ino
> diff --git a/include/uapi/linux/f2fs.h b/include/uapi/linux/f2fs.h
> new file mode 100644
> index 000000000000..ad25786feaa1
> --- /dev/null
> +++ b/include/uapi/linux/f2fs.h
> @@ -0,0 +1,86 @@
> +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> +#ifndef _UAPI_LINUX_F2FS_H
> +#define _UAPI_LINUX_F2FS_H
> +
> +#include <linux/ioctl.h>
> +
> +/*
> + * f2fs-specific ioctl commands
> + */
> +#define F2FS_IOCTL_MAGIC		0xf5
> +#define F2FS_IOC_START_ATOMIC_WRITE	_IO(F2FS_IOCTL_MAGIC, 1)
> +#define F2FS_IOC_COMMIT_ATOMIC_WRITE	_IO(F2FS_IOCTL_MAGIC, 2)
> +#define F2FS_IOC_START_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 3)
> +#define F2FS_IOC_RELEASE_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 4)
> +#define F2FS_IOC_ABORT_VOLATILE_WRITE	_IO(F2FS_IOCTL_MAGIC, 5)
> +#define F2FS_IOC_GARBAGE_COLLECT	_IOW(F2FS_IOCTL_MAGIC, 6, __u32)
> +#define F2FS_IOC_WRITE_CHECKPOINT	_IO(F2FS_IOCTL_MAGIC, 7)
> +#define F2FS_IOC_DEFRAGMENT		_IOWR(F2FS_IOCTL_MAGIC, 8,	\
> +						struct f2fs_defragment)
> +#define F2FS_IOC_MOVE_RANGE		_IOWR(F2FS_IOCTL_MAGIC, 9,	\
> +						struct f2fs_move_range)
> +#define F2FS_IOC_FLUSH_DEVICE		_IOW(F2FS_IOCTL_MAGIC, 10,	\
> +						struct f2fs_flush_device)
> +#define F2FS_IOC_GARBAGE_COLLECT_RANGE	_IOW(F2FS_IOCTL_MAGIC, 11,	\
> +						struct f2fs_gc_range)
> +#define F2FS_IOC_GET_FEATURES		_IOR(F2FS_IOCTL_MAGIC, 12, __u32)
> +#define F2FS_IOC_SET_PIN_FILE		_IOW(F2FS_IOCTL_MAGIC, 13, __u32)
> +#define F2FS_IOC_GET_PIN_FILE		_IOR(F2FS_IOCTL_MAGIC, 14, __u32)
> +#define F2FS_IOC_PRECACHE_EXTENTS	_IO(F2FS_IOCTL_MAGIC, 15)
> +#define F2FS_IOC_RESIZE_FS		_IOW(F2FS_IOCTL_MAGIC, 16, __u64)
> +#define F2FS_IOC_GET_COMPRESS_BLOCKS	_IOR(F2FS_IOCTL_MAGIC, 17, __u64)
> +#define F2FS_IOC_RELEASE_COMPRESS_BLOCKS				\
> +					_IOR(F2FS_IOCTL_MAGIC, 18, __u64)
> +#define F2FS_IOC_RESERVE_COMPRESS_BLOCKS				\
> +					_IOR(F2FS_IOCTL_MAGIC, 19, __u64)
> +#define F2FS_IOC_SEC_TRIM_FILE		_IOW(F2FS_IOCTL_MAGIC, 20,	\
> +						struct f2fs_sectrim_range)
> +
> +/*
> + * should be same as XFS_IOC_GOINGDOWN.
> + * Flags for going down operation used by FS_IOC_GOINGDOWN
> + */
> +#define F2FS_IOC_SHUTDOWN	_IOR('X', 125, __u32)	/* Shutdown */
> +#define F2FS_GOING_DOWN_FULLSYNC	0x0	/* going down with full sync */
> +#define F2FS_GOING_DOWN_METASYNC	0x1	/* going down with metadata */
> +#define F2FS_GOING_DOWN_NOSYNC		0x2	/* going down */
> +#define F2FS_GOING_DOWN_METAFLUSH	0x3	/* going down with meta flush */
> +#define F2FS_GOING_DOWN_NEED_FSCK	0x4	/* going down to trigger fsck */
> +
> +/*
> + * Flags used by F2FS_IOC_SEC_TRIM_FILE
> + */
> +#define F2FS_TRIM_FILE_DISCARD		0x1	/* send discard command */
> +#define F2FS_TRIM_FILE_ZEROOUT		0x2	/* zero out */
> +#define F2FS_TRIM_FILE_MASK		0x3
> +
> +struct f2fs_gc_range {
> +	u32 sync;
> +	u64 start;
> +	u64 len;
> +};
> +
> +struct f2fs_defragment {
> +	u64 start;
> +	u64 len;
> +};
> +
> +struct f2fs_move_range {
> +	u32 dst_fd;		/* destination fd */
> +	u64 pos_in;		/* start position in src_fd */
> +	u64 pos_out;		/* start position in dst_fd */
> +	u64 len;		/* size to move */
> +};
> +
> +struct f2fs_flush_device {
> +	u32 dev_num;		/* device number to flush */
> +	u32 segments;		/* # of segments to flush */
> +};
> +
> +struct f2fs_sectrim_range {
> +	u64 start;
> +	u64 len;
> +	u64 flags;
> +};
> +
> +#endif /* _UAPI_LINUX_F2FS_H */
> -- 
> 2.26.2

  reply	other threads:[~2020-10-30 13:07 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-30  7:26 [f2fs-dev] [PATCH v2] f2fs: move ioctl interface definitions to separated file Chao Yu
2020-10-30  7:26 ` Chao Yu
2020-10-30 12:30 ` Jaegeuk Kim [this message]
2020-10-30 12:30   ` Jaegeuk Kim
2020-10-30 15:03   ` [f2fs-dev] " Chao Yu
2020-10-30 15:03     ` Chao Yu
2020-10-30 16:55 ` [f2fs-dev] " Eric Biggers
2020-10-30 16:55   ` Eric Biggers
2020-10-31  0:32   ` Chao Yu
2020-10-31  0:32     ` Chao Yu
2020-10-30 18:09 ` kernel test robot
2020-10-30 18:09   ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201030123059.GA1877745@google.com \
    --to=jaegeuk@kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=yuchao0@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.