diff mbox series

[f2fs-dev] f2fs: Only lfs mode is allowed with zoned block device feature

Message ID 20230620141035.69782-1-guochunhai@vivo.com (mailing list archive)
State Superseded
Headers show
Series [f2fs-dev] f2fs: Only lfs mode is allowed with zoned block device feature | expand

Commit Message

Chunhai Guo June 20, 2023, 2:10 p.m. UTC
Now f2fs support four block allocation modes: lfs, adaptive,
fragment:segment, fragment:block. Only lfs mode is allowed with zoned block
device feature.

Signed-off-by: Chunhai Guo <guochunhai@vivo.com>
---
 fs/f2fs/super.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

Comments

Chunhai Guo July 19, 2023, 11:44 a.m. UTC | #1
Hi Chao & Jaegeuk,

Could you please help to review this patch?

Thanks.

On 2023/6/20 22:10, 郭纯海 wrote:
> Now f2fs support four block allocation modes: lfs, adaptive,
> fragment:segment, fragment:block. Only lfs mode is allowed with zoned block
> device feature.
> 
> Signed-off-by: Chunhai Guo <guochunhai@vivo.com>
> ---
>   fs/f2fs/super.c | 12 +++++++-----
>   1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
> index c917fa771f0e..6249483be905 100644
> --- a/fs/f2fs/super.c
> +++ b/fs/f2fs/super.c
> @@ -861,12 +861,14 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
>   
>   			if (!name)
>   				return -ENOMEM;
> +
> +			if (strcmp(name, "lfs") && f2fs_sb_has_blkzoned(sbi)) {
> +				f2fs_warn(sbi, "Only lfs mode is allowed with zoned block device feature");
> +				kfree(name);
> +				return -EINVAL;
> +			}
> +
>   			if (!strcmp(name, "adaptive")) {
> -				if (f2fs_sb_has_blkzoned(sbi)) {
> -					f2fs_warn(sbi, "adaptive mode is not allowed with zoned block device feature");
> -					kfree(name);
> -					return -EINVAL;
> -				}
>   				F2FS_OPTION(sbi).fs_mode = FS_MODE_ADAPTIVE;
>   			} else if (!strcmp(name, "lfs")) {
>   				F2FS_OPTION(sbi).fs_mode = FS_MODE_LFS;
Chao Yu Aug. 2, 2023, 2:52 p.m. UTC | #2
On 2023/6/20 22:10, Chunhai Guo wrote:
> Now f2fs support four block allocation modes: lfs, adaptive,
> fragment:segment, fragment:block. Only lfs mode is allowed with zoned block
> device feature.
> 
> Signed-off-by: Chunhai Guo <guochunhai@vivo.com>
> ---
>   fs/f2fs/super.c | 12 +++++++-----
>   1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
> index c917fa771f0e..6249483be905 100644
> --- a/fs/f2fs/super.c
> +++ b/fs/f2fs/super.c
> @@ -861,12 +861,14 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
>   
>   			if (!name)
>   				return -ENOMEM;
> +
> +			if (strcmp(name, "lfs") && f2fs_sb_has_blkzoned(sbi)) {
> +				f2fs_warn(sbi, "Only lfs mode is allowed with zoned block device feature");
> +				kfree(name);
> +				return -EINVAL;
> +			}

What about:

 From f6e71f1d33c2cca543ebb41734c7a95af5190767 Mon Sep 17 00:00:00 2001
From: Chunhai Guo <guochunhai@vivo.com>
Date: Sun, 30 Jul 2023 10:06:50 +0800
Subject: [PATCH] f2fs: only lfs mode is allowed with zoned block device
  feature

Now f2fs support four block allocation modes: lfs, adaptive,
fragment:segment, fragment:block. Only lfs mode is allowed with zoned block
device feature.

Signed-off-by: Chunhai Guo <guochunhai@vivo.com>
---
  fs/f2fs/super.c | 9 ++++-----
  1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 099e126c61e1..1d0593358125 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -864,11 +864,6 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
  			if (!name)
  				return -ENOMEM;
  			if (!strcmp(name, "adaptive")) {
-				if (f2fs_sb_has_blkzoned(sbi)) {
-					f2fs_warn(sbi, "adaptive mode is not allowed with zoned block device feature");
-					kfree(name);
-					return -EINVAL;
-				}
  				F2FS_OPTION(sbi).fs_mode = FS_MODE_ADAPTIVE;
  			} else if (!strcmp(name, "lfs")) {
  				F2FS_OPTION(sbi).fs_mode = FS_MODE_LFS;
@@ -1333,6 +1328,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
  			F2FS_OPTION(sbi).discard_unit =
  					DISCARD_UNIT_SECTION;
  		}
+		if (F2FS_OPTION(sbi).fs_mode != FS_MODE_LFS) {
+			f2fs_info(sbi, "Only lfs mode is allowed with zoned block device feature");
+			return -EINVAL;
+		}
  #else
  		f2fs_err(sbi, "Zoned block device support is not enabled");
  		return -EINVAL;
Chunhai Guo Aug. 3, 2023, 2:32 p.m. UTC | #3
Hi Chao,

I have sent the second patch with your suggestion. Please have a check.

Thanks.

On 2023/8/2 22:52, Chao Yu wrote:
> On 2023/6/20 22:10, Chunhai Guo wrote:
>> Now f2fs support four block allocation modes: lfs, adaptive,
>> fragment:segment, fragment:block. Only lfs mode is allowed with zoned block
>> device feature.
>>
>> Signed-off-by: Chunhai Guo <guochunhai@vivo.com>
>> ---
>>    fs/f2fs/super.c | 12 +++++++-----
>>    1 file changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
>> index c917fa771f0e..6249483be905 100644
>> --- a/fs/f2fs/super.c
>> +++ b/fs/f2fs/super.c
>> @@ -861,12 +861,14 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
>>    
>>    			if (!name)
>>    				return -ENOMEM;
>> +
>> +			if (strcmp(name, "lfs") && f2fs_sb_has_blkzoned(sbi)) {
>> +				f2fs_warn(sbi, "Only lfs mode is allowed with zoned block device feature");
>> +				kfree(name);
>> +				return -EINVAL;
>> +			}
> 
> What about:
> 
>   From f6e71f1d33c2cca543ebb41734c7a95af5190767 Mon Sep 17 00:00:00 2001
> From: Chunhai Guo <guochunhai@vivo.com>
> Date: Sun, 30 Jul 2023 10:06:50 +0800
> Subject: [PATCH] f2fs: only lfs mode is allowed with zoned block device
>    feature
> 
> Now f2fs support four block allocation modes: lfs, adaptive,
> fragment:segment, fragment:block. Only lfs mode is allowed with zoned block
> device feature.
> 
> Signed-off-by: Chunhai Guo <guochunhai@vivo.com>
> ---
>    fs/f2fs/super.c | 9 ++++-----
>    1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
> index 099e126c61e1..1d0593358125 100644
> --- a/fs/f2fs/super.c
> +++ b/fs/f2fs/super.c
> @@ -864,11 +864,6 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
>    			if (!name)
>    				return -ENOMEM;
>    			if (!strcmp(name, "adaptive")) {
> -				if (f2fs_sb_has_blkzoned(sbi)) {
> -					f2fs_warn(sbi, "adaptive mode is not allowed with zoned block device feature");
> -					kfree(name);
> -					return -EINVAL;
> -				}
>    				F2FS_OPTION(sbi).fs_mode = FS_MODE_ADAPTIVE;
>    			} else if (!strcmp(name, "lfs")) {
>    				F2FS_OPTION(sbi).fs_mode = FS_MODE_LFS;
> @@ -1333,6 +1328,10 @@ static int parse_options(struct super_block *sb, char *options, bool is_remount)
>    			F2FS_OPTION(sbi).discard_unit =
>    					DISCARD_UNIT_SECTION;
>    		}
> +		if (F2FS_OPTION(sbi).fs_mode != FS_MODE_LFS) {
> +			f2fs_info(sbi, "Only lfs mode is allowed with zoned block device feature");
> +			return -EINVAL;
> +		}
>    #else
>    		f2fs_err(sbi, "Zoned block device support is not enabled");
>    		return -EINVAL;
diff mbox series

Patch

diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index c917fa771f0e..6249483be905 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -861,12 +861,14 @@  static int parse_options(struct super_block *sb, char *options, bool is_remount)
 
 			if (!name)
 				return -ENOMEM;
+
+			if (strcmp(name, "lfs") && f2fs_sb_has_blkzoned(sbi)) {
+				f2fs_warn(sbi, "Only lfs mode is allowed with zoned block device feature");
+				kfree(name);
+				return -EINVAL;
+			}
+
 			if (!strcmp(name, "adaptive")) {
-				if (f2fs_sb_has_blkzoned(sbi)) {
-					f2fs_warn(sbi, "adaptive mode is not allowed with zoned block device feature");
-					kfree(name);
-					return -EINVAL;
-				}
 				F2FS_OPTION(sbi).fs_mode = FS_MODE_ADAPTIVE;
 			} else if (!strcmp(name, "lfs")) {
 				F2FS_OPTION(sbi).fs_mode = FS_MODE_LFS;