2018-11-07 23:17:53

by Chengguang Xu

[permalink] [raw]
Subject: [PATCH] ext2: avoid unnecessary operation in ext2_error()

If filesystem has already mounted as read-only, then we don't have
to do it again.

Signed-off-by: Chengguang Xu <[email protected]>
---
fs/ext2/super.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index cb91baa4275d..5e2861b947a6 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -73,7 +73,7 @@ void ext2_error(struct super_block *sb, const char *function,

if (test_opt(sb, ERRORS_PANIC))
panic("EXT2-fs: panic from previous error\n");
- if (test_opt(sb, ERRORS_RO)) {
+ if (!sb_rdonly(sb) && test_opt(sb, ERRORS_RO)) {
ext2_msg(sb, KERN_CRIT,
"error: remounting filesystem read-only");
sb->s_flags |= SB_RDONLY;
--
2.17.2


2018-11-08 23:50:57

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH] ext2: avoid unnecessary operation in ext2_error()

On Wed 07-11-18 21:47:04, Chengguang Xu wrote:
> If filesystem has already mounted as read-only, then we don't have
> to do it again.
>
> Signed-off-by: Chengguang Xu <[email protected]>

Makes sense. Thanks for the patch. I have added it to my tree.

Honza

> ---
> fs/ext2/super.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ext2/super.c b/fs/ext2/super.c
> index cb91baa4275d..5e2861b947a6 100644
> --- a/fs/ext2/super.c
> +++ b/fs/ext2/super.c
> @@ -73,7 +73,7 @@ void ext2_error(struct super_block *sb, const char *function,
>
> if (test_opt(sb, ERRORS_PANIC))
> panic("EXT2-fs: panic from previous error\n");
> - if (test_opt(sb, ERRORS_RO)) {
> + if (!sb_rdonly(sb) && test_opt(sb, ERRORS_RO)) {
> ext2_msg(sb, KERN_CRIT,
> "error: remounting filesystem read-only");
> sb->s_flags |= SB_RDONLY;
> --
> 2.17.2
>
>
--
Jan Kara <[email protected]>
SUSE Labs, CR