From: Chao Yu via Linux-f2fs-devel <linux-f2fs-devel@lists.sourceforge.net>
To: Daeho Jeong <daeho43@gmail.com>,
linux-kernel@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net, kernel-team@android.com
Cc: Daeho Jeong <daehojeong@google.com>
Subject: Re: [f2fs-dev] [PATCH v2] f2fs_io: add dev_alias command for dynamic device aliasing management
Date: Mon, 3 Aug 2026 10:12:12 +0800 [thread overview]
Message-ID: <01934160-5194-4a74-867a-11da373a3630@kernel.org> (raw)
In-Reply-To: <20260606011942.1206814-1-daeho43@gmail.com>
Daeho, can you please update this patch to use last ioctl interface?
On 6/6/26 09:19, Daeho Jeong wrote:
> From: Daeho Jeong <daehojeong@google.com>
>
> This commit adds a new 'dev_alias' command to f2fs_io tool to support
> dynamic inclusion, exclusion and status querying of device alias ranges.
>
> Signed-off-by: Daeho Jeong <daehojeong@google.com>
> ---
> v2: remove a f2fs specific flag from getflags.
> ---
> tools/f2fs_io/f2fs_io.c | 46 +++++++++++++++++++++++++++++++++++++++++
> tools/f2fs_io/f2fs_io.h | 7 +++++++
> 2 files changed, 53 insertions(+)
>
> diff --git a/tools/f2fs_io/f2fs_io.c b/tools/f2fs_io/f2fs_io.c
> index c977f4d..3fa323b 100644
> --- a/tools/f2fs_io/f2fs_io.c
> +++ b/tools/f2fs_io/f2fs_io.c
> @@ -2509,6 +2509,51 @@ static void do_test_lookup_perf(int argc, char **argv, const struct cmd_desc *cm
> exit(0);
> }
>
> +#define dev_alias_desc "device alias control"
> +#define dev_alias_help \
> +"f2fs_io dev_alias [include|exclude|status] [file]\n\n" \
> +"include, exclude or status a range of device alias given the file\n"
> +
> +static void do_dev_alias(int argc, char **argv, const struct cmd_desc *cmd)
> +{
> + int fd, ret;
> +
> + if (argc != 3) {
> + fputs("Excess arguments\n\n", stderr);
> + fputs(cmd->cmd_help, stderr);
> + exit(1);
> + }
> +
> + fd = xopen(argv[2], O_RDWR, 0);
> +
> + if (!strcmp(argv[1], "exclude")) {
> + ret = ioctl(fd, F2FS_IOC_EXCLUDE_DEV_ALIAS);
> + if (ret < 0)
> + die_errno("F2FS_IOC_EXCLUDE_DEV_ALIAS failed");
> + printf("%s device alias range of %s\n", argv[1], argv[2]);
> + } else if (!strcmp(argv[1], "include")) {
> + ret = ioctl(fd, F2FS_IOC_INCLUDE_DEV_ALIAS);
> + if (ret < 0)
> + die_errno("F2FS_IOC_INCLUDE_DEV_ALIAS failed");
> + printf("%s device alias range of %s\n", argv[1], argv[2]);
> + } else if (!strcmp(argv[1], "status")) {
> + u32 status = 0;
> +
> + ret = ioctl(fd, F2FS_IOC_GET_DEV_ALIAS_STATUS, &status);
> + if (ret < 0)
> + die_errno("F2FS_IOC_GET_DEV_ALIAS_STATUS failed");
> +
> + printf("device alias status of %s: %s\n", argv[2],
> + status == F2FS_DEV_ALIAS_STATUS_EXCLUDED ? "excluded" : "included");
> + } else {
> + fputs("Wrong request type\n\n", stderr);
> + fputs(cmd->cmd_help, stderr);
> + exit(1);
> + }
> +
> + exit(0);
> +}
> +
> #define freeze_desc "freeze filesystem"
> #define freeze_help "f2fs_io freeze [directory_path]\n\n"
>
> @@ -2603,6 +2648,7 @@ const struct cmd_desc cmd_list[] = {
> CMD(get_advise),
> CMD(ioprio),
> CMD(ftruncate),
> + CMD(dev_alias),
> CMD(test_create_perf),
> CMD(test_lookup_perf),
> CMD(freeze),
> diff --git a/tools/f2fs_io/f2fs_io.h b/tools/f2fs_io/f2fs_io.h
> index b0d4099..57d96b7 100644
> --- a/tools/f2fs_io/f2fs_io.h
> +++ b/tools/f2fs_io/f2fs_io.h
> @@ -96,6 +96,9 @@ typedef u32 __be32;
> #define F2FS_IOC_START_ATOMIC_REPLACE _IO(F2FS_IOCTL_MAGIC, 25)
> #define F2FS_IOC_GET_DEV_ALIAS_FILE _IOR(F2FS_IOCTL_MAGIC, 26, __u32)
> #define F2FS_IOC_IO_PRIO _IOW(F2FS_IOCTL_MAGIC, 27, __u32)
> +#define F2FS_IOC_EXCLUDE_DEV_ALIAS _IO(F2FS_IOCTL_MAGIC, 28)
> +#define F2FS_IOC_INCLUDE_DEV_ALIAS _IO(F2FS_IOCTL_MAGIC, 29)
> +#define F2FS_IOC_GET_DEV_ALIAS_STATUS _IOR(F2FS_IOCTL_MAGIC, 30, __u32)
>
> #ifndef FSCRYPT_POLICY_V1
> #define FSCRYPT_POLICY_V1 0
> @@ -200,6 +203,10 @@ enum {
> F2FS_IOPRIO_WRITE = 1, /* high write priority */
> };
>
> +/* for F2FS_IOC_GET_DEV_ALIAS_STATUS */
> +#define F2FS_DEV_ALIAS_STATUS_INCLUDED 0
> +#define F2FS_DEV_ALIAS_STATUS_EXCLUDED 1
> +
> #ifndef FS_IMMUTABLE_FL
> #define FS_IMMUTABLE_FL 0x00000010 /* Immutable file */
> #endif
_______________________________________________
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: Chao Yu <chao@kernel.org>
To: Daeho Jeong <daeho43@gmail.com>,
linux-kernel@vger.kernel.org,
linux-f2fs-devel@lists.sourceforge.net, kernel-team@android.com
Cc: chao@kernel.org, Daeho Jeong <daehojeong@google.com>
Subject: Re: [f2fs-dev] [PATCH v2] f2fs_io: add dev_alias command for dynamic device aliasing management
Date: Mon, 3 Aug 2026 10:12:12 +0800 [thread overview]
Message-ID: <01934160-5194-4a74-867a-11da373a3630@kernel.org> (raw)
In-Reply-To: <20260606011942.1206814-1-daeho43@gmail.com>
Daeho, can you please update this patch to use last ioctl interface?
On 6/6/26 09:19, Daeho Jeong wrote:
> From: Daeho Jeong <daehojeong@google.com>
>
> This commit adds a new 'dev_alias' command to f2fs_io tool to support
> dynamic inclusion, exclusion and status querying of device alias ranges.
>
> Signed-off-by: Daeho Jeong <daehojeong@google.com>
> ---
> v2: remove a f2fs specific flag from getflags.
> ---
> tools/f2fs_io/f2fs_io.c | 46 +++++++++++++++++++++++++++++++++++++++++
> tools/f2fs_io/f2fs_io.h | 7 +++++++
> 2 files changed, 53 insertions(+)
>
> diff --git a/tools/f2fs_io/f2fs_io.c b/tools/f2fs_io/f2fs_io.c
> index c977f4d..3fa323b 100644
> --- a/tools/f2fs_io/f2fs_io.c
> +++ b/tools/f2fs_io/f2fs_io.c
> @@ -2509,6 +2509,51 @@ static void do_test_lookup_perf(int argc, char **argv, const struct cmd_desc *cm
> exit(0);
> }
>
> +#define dev_alias_desc "device alias control"
> +#define dev_alias_help \
> +"f2fs_io dev_alias [include|exclude|status] [file]\n\n" \
> +"include, exclude or status a range of device alias given the file\n"
> +
> +static void do_dev_alias(int argc, char **argv, const struct cmd_desc *cmd)
> +{
> + int fd, ret;
> +
> + if (argc != 3) {
> + fputs("Excess arguments\n\n", stderr);
> + fputs(cmd->cmd_help, stderr);
> + exit(1);
> + }
> +
> + fd = xopen(argv[2], O_RDWR, 0);
> +
> + if (!strcmp(argv[1], "exclude")) {
> + ret = ioctl(fd, F2FS_IOC_EXCLUDE_DEV_ALIAS);
> + if (ret < 0)
> + die_errno("F2FS_IOC_EXCLUDE_DEV_ALIAS failed");
> + printf("%s device alias range of %s\n", argv[1], argv[2]);
> + } else if (!strcmp(argv[1], "include")) {
> + ret = ioctl(fd, F2FS_IOC_INCLUDE_DEV_ALIAS);
> + if (ret < 0)
> + die_errno("F2FS_IOC_INCLUDE_DEV_ALIAS failed");
> + printf("%s device alias range of %s\n", argv[1], argv[2]);
> + } else if (!strcmp(argv[1], "status")) {
> + u32 status = 0;
> +
> + ret = ioctl(fd, F2FS_IOC_GET_DEV_ALIAS_STATUS, &status);
> + if (ret < 0)
> + die_errno("F2FS_IOC_GET_DEV_ALIAS_STATUS failed");
> +
> + printf("device alias status of %s: %s\n", argv[2],
> + status == F2FS_DEV_ALIAS_STATUS_EXCLUDED ? "excluded" : "included");
> + } else {
> + fputs("Wrong request type\n\n", stderr);
> + fputs(cmd->cmd_help, stderr);
> + exit(1);
> + }
> +
> + exit(0);
> +}
> +
> #define freeze_desc "freeze filesystem"
> #define freeze_help "f2fs_io freeze [directory_path]\n\n"
>
> @@ -2603,6 +2648,7 @@ const struct cmd_desc cmd_list[] = {
> CMD(get_advise),
> CMD(ioprio),
> CMD(ftruncate),
> + CMD(dev_alias),
> CMD(test_create_perf),
> CMD(test_lookup_perf),
> CMD(freeze),
> diff --git a/tools/f2fs_io/f2fs_io.h b/tools/f2fs_io/f2fs_io.h
> index b0d4099..57d96b7 100644
> --- a/tools/f2fs_io/f2fs_io.h
> +++ b/tools/f2fs_io/f2fs_io.h
> @@ -96,6 +96,9 @@ typedef u32 __be32;
> #define F2FS_IOC_START_ATOMIC_REPLACE _IO(F2FS_IOCTL_MAGIC, 25)
> #define F2FS_IOC_GET_DEV_ALIAS_FILE _IOR(F2FS_IOCTL_MAGIC, 26, __u32)
> #define F2FS_IOC_IO_PRIO _IOW(F2FS_IOCTL_MAGIC, 27, __u32)
> +#define F2FS_IOC_EXCLUDE_DEV_ALIAS _IO(F2FS_IOCTL_MAGIC, 28)
> +#define F2FS_IOC_INCLUDE_DEV_ALIAS _IO(F2FS_IOCTL_MAGIC, 29)
> +#define F2FS_IOC_GET_DEV_ALIAS_STATUS _IOR(F2FS_IOCTL_MAGIC, 30, __u32)
>
> #ifndef FSCRYPT_POLICY_V1
> #define FSCRYPT_POLICY_V1 0
> @@ -200,6 +203,10 @@ enum {
> F2FS_IOPRIO_WRITE = 1, /* high write priority */
> };
>
> +/* for F2FS_IOC_GET_DEV_ALIAS_STATUS */
> +#define F2FS_DEV_ALIAS_STATUS_INCLUDED 0
> +#define F2FS_DEV_ALIAS_STATUS_EXCLUDED 1
> +
> #ifndef FS_IMMUTABLE_FL
> #define FS_IMMUTABLE_FL 0x00000010 /* Immutable file */
> #endif
next prev parent reply other threads:[~2026-08-03 2:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-06 1:19 [f2fs-dev] [PATCH v2] f2fs_io: add dev_alias command for dynamic device aliasing management Daeho Jeong
2026-06-06 1:19 ` Daeho Jeong
2026-08-03 2:12 ` Chao Yu via Linux-f2fs-devel [this message]
2026-08-03 2:12 ` [f2fs-dev] " Chao Yu
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=01934160-5194-4a74-867a-11da373a3630@kernel.org \
--to=linux-f2fs-devel@lists.sourceforge.net \
--cc=chao@kernel.org \
--cc=daeho43@gmail.com \
--cc=daehojeong@google.com \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
/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.