* [PATCH AUTOSEL 4.4 02/21] ext4: add missing brelse() in add_new_gdb_meta_bg()
[not found] <20190330005649.28475-1-sashal@kernel.org>
@ 2019-03-30 0:56 ` Sasha Levin
2019-03-30 0:56 ` [PATCH AUTOSEL 4.4 03/21] ext4: report real fs size after failed resize Sasha Levin
2019-03-30 0:56 ` [PATCH AUTOSEL 4.4 21/21] ext4: prohibit fstrim in norecovery mode Sasha Levin
2 siblings, 0 replies; 3+ messages in thread
From: Sasha Levin @ 2019-03-30 0:56 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Lukas Czerner, Theodore Ts'o, Sasha Levin, linux-ext4
From: Lukas Czerner <lczerner@redhat.com>
[ Upstream commit d64264d6218e6892edd832dc3a5a5857c2856c53 ]
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>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
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 4bd12247a9be..22c90eb9a4e0 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -907,11 +907,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.19.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH AUTOSEL 4.4 03/21] ext4: report real fs size after failed resize
[not found] <20190330005649.28475-1-sashal@kernel.org>
2019-03-30 0:56 ` [PATCH AUTOSEL 4.4 02/21] ext4: add missing brelse() in add_new_gdb_meta_bg() Sasha Levin
@ 2019-03-30 0:56 ` Sasha Levin
2019-03-30 0:56 ` [PATCH AUTOSEL 4.4 21/21] ext4: prohibit fstrim in norecovery mode Sasha Levin
2 siblings, 0 replies; 3+ messages in thread
From: Sasha Levin @ 2019-03-30 0:56 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Lukas Czerner, Theodore Ts'o, Sasha Levin, linux-ext4
From: Lukas Czerner <lczerner@redhat.com>
[ Upstream commit 6c7328400e0488f7d49e19e02290ba343b6811b2 ]
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 a warning that "error occurred during file system
resize"
Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/ext4/resize.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index 22c90eb9a4e0..5223eb25bf59 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -2047,6 +2047,10 @@ 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 (%d) occurred during "
+ "file system resize", err);
+ ext4_msg(sb, KERN_INFO, "resized filesystem to %llu",
+ ext4_blocks_count(es));
return err;
}
--
2.19.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH AUTOSEL 4.4 21/21] ext4: prohibit fstrim in norecovery mode
[not found] <20190330005649.28475-1-sashal@kernel.org>
2019-03-30 0:56 ` [PATCH AUTOSEL 4.4 02/21] ext4: add missing brelse() in add_new_gdb_meta_bg() Sasha Levin
2019-03-30 0:56 ` [PATCH AUTOSEL 4.4 03/21] ext4: report real fs size after failed resize Sasha Levin
@ 2019-03-30 0:56 ` Sasha Levin
2 siblings, 0 replies; 3+ messages in thread
From: Sasha Levin @ 2019-03-30 0:56 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Darrick J. Wong, Theodore Ts'o, Sasha Levin, linux-ext4
From: "Darrick J. Wong" <darrick.wong@oracle.com>
[ Upstream commit 18915b5873f07e5030e6fb108a050fa7c71c59fb ]
The ext4 fstrim implementation uses the block bitmaps to find free space
that can be discarded. If we haven't replayed the journal, the bitmaps
will be stale and we absolutely *cannot* use stale metadata to zap the
underlying storage.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/ext4/ioctl.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
index bcd7c4788903..e44e3cd738b6 100644
--- a/fs/ext4/ioctl.c
+++ b/fs/ext4/ioctl.c
@@ -599,6 +599,13 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
if (!blk_queue_discard(q))
return -EOPNOTSUPP;
+ /*
+ * We haven't replayed the journal, so we cannot use our
+ * block-bitmap-guided storage zapping commands.
+ */
+ if (test_opt(sb, NOLOAD) && ext4_has_feature_journal(sb))
+ return -EROFS;
+
if (copy_from_user(&range, (struct fstrim_range __user *)arg,
sizeof(range)))
return -EFAULT;
--
2.19.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-03-30 1:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20190330005649.28475-1-sashal@kernel.org>
2019-03-30 0:56 ` [PATCH AUTOSEL 4.4 02/21] ext4: add missing brelse() in add_new_gdb_meta_bg() Sasha Levin
2019-03-30 0:56 ` [PATCH AUTOSEL 4.4 03/21] ext4: report real fs size after failed resize Sasha Levin
2019-03-30 0:56 ` [PATCH AUTOSEL 4.4 21/21] ext4: prohibit fstrim in norecovery mode Sasha Levin
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).