* [PATCH v2 1/2] ext4: Add missing brelse() in add_new_gdb_meta_bg()
@ 2019-03-05 10:53 Lukas Czerner
2019-03-05 10:54 ` [PATCH v2 2/2] ext4: Report real fs size after failed resize Lukas Czerner
2019-03-15 4:18 ` [PATCH v2 1/2] ext4: Add missing brelse() in add_new_gdb_meta_bg() Theodore Ts'o
0 siblings, 2 replies; 5+ messages in thread
From: Lukas Czerner @ 2019-03-05 10:53 UTC (permalink / raw)
To: linux-ext4
Currently in add_new_gdb_meta_bg() there is a missing brelse of gdb_bh
in case ext4_journal_get_write_access() fails.
Additionally kvfree() is missing in the same error path. Fix it by
moving the ext4_journal_get_write_access() before the ext4 sb update as
Ted suggested and release n_group_desc and gdb_bh in case it fails.
Fixes: 61a9c11e5e7a ("ext4: add missing brelse() add_new_gdb_meta_bg()'s error path")
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
---
v2: Mofe ext4_journal_get_write_access() before we update ext4 sb
fs/ext4/resize.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index 48421de803b7..5f89c19043a2 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -932,11 +932,18 @@ static int add_new_gdb_meta_bg(struct super_block *sb,
memcpy(n_group_desc, o_group_desc,
EXT4_SB(sb)->s_gdb_count * sizeof(struct buffer_head *));
n_group_desc[gdb_num] = gdb_bh;
+
+ BUFFER_TRACE(gdb_bh, "get_write_access");
+ err = ext4_journal_get_write_access(handle, gdb_bh);
+ if (err) {
+ kvfree(n_group_desc);
+ brelse(gdb_bh);
+ return err;
+ }
+
EXT4_SB(sb)->s_group_desc = n_group_desc;
EXT4_SB(sb)->s_gdb_count++;
kvfree(o_group_desc);
- BUFFER_TRACE(gdb_bh, "get_write_access");
- err = ext4_journal_get_write_access(handle, gdb_bh);
return err;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] ext4: Report real fs size after failed resize
2019-03-05 10:53 [PATCH v2 1/2] ext4: Add missing brelse() in add_new_gdb_meta_bg() Lukas Czerner
@ 2019-03-05 10:54 ` Lukas Czerner
2019-03-15 4:23 ` Theodore Ts'o
2019-03-15 4:18 ` [PATCH v2 1/2] ext4: Add missing brelse() in add_new_gdb_meta_bg() Theodore Ts'o
1 sibling, 1 reply; 5+ messages in thread
From: Lukas Czerner @ 2019-03-05 10:54 UTC (permalink / raw)
To: linux-ext4
Currently when the file system resize using ext4_resize_fs() fails it
will report into log that "resized filesystem to <requested block
count>". However this may not be true in the case of failure. Use the
current block count as returned by ext4_blocks_count() to report the
block count.
Additionally report to log that "error occurred during file system
resize"
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
---
v2: this is actually the first version
fs/ext4/resize.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index 5f89c19043a2..939e91a8c88b 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -2079,6 +2079,9 @@ int ext4_resize_fs(struct super_block *sb, ext4_fsblk_t n_blocks_count)
free_flex_gd(flex_gd);
if (resize_inode != NULL)
iput(resize_inode);
- ext4_msg(sb, KERN_INFO, "resized filesystem to %llu", n_blocks_count);
+ if (err)
+ ext4_warning(sb, "error occurred during file system resize");
+ ext4_msg(sb, KERN_INFO, "resized filesystem to %llu",
+ ext4_blocks_count(es));
return err;
}
--
2.20.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 1/2] ext4: Add missing brelse() in add_new_gdb_meta_bg()
2019-03-05 10:53 [PATCH v2 1/2] ext4: Add missing brelse() in add_new_gdb_meta_bg() Lukas Czerner
2019-03-05 10:54 ` [PATCH v2 2/2] ext4: Report real fs size after failed resize Lukas Czerner
@ 2019-03-15 4:18 ` Theodore Ts'o
1 sibling, 0 replies; 5+ messages in thread
From: Theodore Ts'o @ 2019-03-15 4:18 UTC (permalink / raw)
To: Lukas Czerner; +Cc: linux-ext4
On Tue, Mar 05, 2019 at 11:53:59AM +0100, Lukas Czerner wrote:
> Currently in add_new_gdb_meta_bg() there is a missing brelse of gdb_bh
> in case ext4_journal_get_write_access() fails.
> Additionally kvfree() is missing in the same error path. Fix it by
> moving the ext4_journal_get_write_access() before the ext4 sb update as
> Ted suggested and release n_group_desc and gdb_bh in case it fails.
>
> Fixes: 61a9c11e5e7a ("ext4: add missing brelse() add_new_gdb_meta_bg()'s error path")
> Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Thanks, applied.
- Ted
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] ext4: Report real fs size after failed resize
2019-03-05 10:54 ` [PATCH v2 2/2] ext4: Report real fs size after failed resize Lukas Czerner
@ 2019-03-15 4:23 ` Theodore Ts'o
2019-03-15 8:43 ` Lukas Czerner
0 siblings, 1 reply; 5+ messages in thread
From: Theodore Ts'o @ 2019-03-15 4:23 UTC (permalink / raw)
To: Lukas Czerner; +Cc: linux-ext4
On Tue, Mar 05, 2019 at 11:54:00AM +0100, Lukas Czerner wrote:
> Currently when the file system resize using ext4_resize_fs() fails it
> will report into log that "resized filesystem to <requested block
> count>". However this may not be true in the case of failure. Use the
> current block count as returned by ext4_blocks_count() to report the
> block count.
> Additionally report to log that "error occurred during file system
> resize"
>
> Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Thanks, applied with one minor change. In call to ext4_warning(), I
changed it to include error code so the warning message will be more
useful:
> + if (err)
> + ext4_warning(sb, "error occurred during file system resize");
is now
+ if (err)
+ ext4_warning(sb, "error (%d) occurred during "
+ "file system resize", err);
- Ted
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] ext4: Report real fs size after failed resize
2019-03-15 4:23 ` Theodore Ts'o
@ 2019-03-15 8:43 ` Lukas Czerner
0 siblings, 0 replies; 5+ messages in thread
From: Lukas Czerner @ 2019-03-15 8:43 UTC (permalink / raw)
To: Theodore Ts'o; +Cc: linux-ext4
On Fri, Mar 15, 2019 at 12:23:58AM -0400, Theodore Ts'o wrote:
> On Tue, Mar 05, 2019 at 11:54:00AM +0100, Lukas Czerner wrote:
> > Currently when the file system resize using ext4_resize_fs() fails it
> > will report into log that "resized filesystem to <requested block
> > count>". However this may not be true in the case of failure. Use the
> > current block count as returned by ext4_blocks_count() to report the
> > block count.
> > Additionally report to log that "error occurred during file system
> > resize"
> >
> > Signed-off-by: Lukas Czerner <lczerner@redhat.com>
>
> Thanks, applied with one minor change. In call to ext4_warning(), I
> changed it to include error code so the warning message will be more
> useful:
>
> > + if (err)
> > + ext4_warning(sb, "error occurred during file system resize");
>
> is now
>
> + if (err)
> + ext4_warning(sb, "error (%d) occurred during "
> + "file system resize", err);
Yeah, that's better.
Thanks!
-Lukas
>
> - Ted
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-03-15 8:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-05 10:53 [PATCH v2 1/2] ext4: Add missing brelse() in add_new_gdb_meta_bg() Lukas Czerner
2019-03-05 10:54 ` [PATCH v2 2/2] ext4: Report real fs size after failed resize Lukas Czerner
2019-03-15 4:23 ` Theodore Ts'o
2019-03-15 8:43 ` Lukas Czerner
2019-03-15 4:18 ` [PATCH v2 1/2] ext4: Add missing brelse() in add_new_gdb_meta_bg() Theodore Ts'o
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).