mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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


      reply	other threads:[~2026-08-03  2:12 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-06  1:19 Daeho Jeong
2026-08-03  2:12 ` Chao Yu [this message]

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=chao@kernel.org \
    --cc=daeho43@gmail.com \
    --cc=daehojeong@google.com \
    --cc=kernel-team@android.com \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®