* [e2fsprogs PATCH v2] e2fsck: don't allow journal inode to have encrypt flag
@ 2022-11-02 22:05 Eric Biggers
2022-11-02 22:48 ` Andreas Dilger
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Eric Biggers @ 2022-11-02 22:05 UTC (permalink / raw
To: linux-ext4; +Cc: linux-fscrypt
From: Eric Biggers <ebiggers@google.com>
Since the kernel is being fixed to consider journal inodes with the
'encrypt' flag set to be invalid, also update e2fsck accordingly.
Signed-off-by: Eric Biggers <ebiggers@google.com>
---
v2: generate the test filesystem image dynamically.
e2fsck/journal.c | 3 ++-
tests/f_badjour_encrypted/expect.1 | 30 ++++++++++++++++++++++++++++++
tests/f_badjour_encrypted/expect.2 | 7 +++++++
tests/f_badjour_encrypted/name | 1 +
tests/f_badjour_encrypted/script | 11 +++++++++++
5 files changed, 51 insertions(+), 1 deletion(-)
create mode 100644 tests/f_badjour_encrypted/expect.1
create mode 100644 tests/f_badjour_encrypted/expect.2
create mode 100644 tests/f_badjour_encrypted/name
create mode 100644 tests/f_badjour_encrypted/script
diff --git a/e2fsck/journal.c b/e2fsck/journal.c
index d802c5e9..343e48ba 100644
--- a/e2fsck/journal.c
+++ b/e2fsck/journal.c
@@ -1039,7 +1039,8 @@ static errcode_t e2fsck_get_journal(e2fsck_t ctx, journal_t **ret_journal)
tried_backup_jnl++;
}
if (!j_inode->i_ext2.i_links_count ||
- !LINUX_S_ISREG(j_inode->i_ext2.i_mode)) {
+ !LINUX_S_ISREG(j_inode->i_ext2.i_mode) ||
+ (j_inode->i_ext2.i_flags & EXT4_ENCRYPT_FL)) {
retval = EXT2_ET_NO_JOURNAL;
goto try_backup_journal;
}
diff --git a/tests/f_badjour_encrypted/expect.1 b/tests/f_badjour_encrypted/expect.1
new file mode 100644
index 00000000..0b13b9eb
--- /dev/null
+++ b/tests/f_badjour_encrypted/expect.1
@@ -0,0 +1,30 @@
+Superblock has an invalid journal (inode 8).
+Clear? yes
+
+*** journal has been deleted ***
+
+Pass 1: Checking inodes, blocks, and sizes
+Journal inode is not in use, but contains data. Clear? yes
+
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+Block bitmap differences: -(24--25) -(27--41) -(107--1113)
+Fix? yes
+
+Free blocks count wrong for group #0 (934, counted=1958).
+Fix? yes
+
+Free blocks count wrong (934, counted=1958).
+Fix? yes
+
+Recreate journal? yes
+
+Creating journal (1024 blocks): Done.
+
+*** journal has been regenerated ***
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 11/256 files (0.0% non-contiguous), 1114/2048 blocks
+Exit status is 1
diff --git a/tests/f_badjour_encrypted/expect.2 b/tests/f_badjour_encrypted/expect.2
new file mode 100644
index 00000000..76934be2
--- /dev/null
+++ b/tests/f_badjour_encrypted/expect.2
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 11/256 files (9.1% non-contiguous), 1114/2048 blocks
+Exit status is 0
diff --git a/tests/f_badjour_encrypted/name b/tests/f_badjour_encrypted/name
new file mode 100644
index 00000000..e8f4c04f
--- /dev/null
+++ b/tests/f_badjour_encrypted/name
@@ -0,0 +1 @@
+journal inode has encrypt flag
diff --git a/tests/f_badjour_encrypted/script b/tests/f_badjour_encrypted/script
new file mode 100644
index 00000000..e6778f1d
--- /dev/null
+++ b/tests/f_badjour_encrypted/script
@@ -0,0 +1,11 @@
+if ! test -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped (no debugfs)"
+ return 0
+fi
+
+touch $TMPFILE
+$MKE2FS -t ext4 -b 1024 $TMPFILE 2M
+$DEBUGFS -w -R 'set_inode_field <8> flags 0x80800' $TMPFILE
+
+SKIP_GUNZIP="true"
+. $cmd_dir/run_e2fsck
base-commit: aad34909b6648579f42dade5af5b46821aa4d845
--
2.38.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [e2fsprogs PATCH v2] e2fsck: don't allow journal inode to have encrypt flag
2022-11-02 22:05 [e2fsprogs PATCH v2] e2fsck: don't allow journal inode to have encrypt flag Eric Biggers
@ 2022-11-02 22:48 ` Andreas Dilger
2023-01-09 18:20 ` Eric Biggers
2023-01-19 15:27 ` Theodore Ts'o
2 siblings, 0 replies; 4+ messages in thread
From: Andreas Dilger @ 2022-11-02 22:48 UTC (permalink / raw
To: Eric Biggers; +Cc: linux-ext4, linux-fscrypt
[-- Attachment #1: Type: text/plain, Size: 4076 bytes --]
On Nov 2, 2022, at 4:05 PM, Eric Biggers <ebiggers@kernel.org> wrote:
>
> From: Eric Biggers <ebiggers@google.com>
>
> Since the kernel is being fixed to consider journal inodes with the
> 'encrypt' flag set to be invalid, also update e2fsck accordingly.
>
> Signed-off-by: Eric Biggers <ebiggers@google.com>
Looks good.
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
> ---
>
> v2: generate the test filesystem image dynamically.
>
> e2fsck/journal.c | 3 ++-
> tests/f_badjour_encrypted/expect.1 | 30 ++++++++++++++++++++++++++++++
> tests/f_badjour_encrypted/expect.2 | 7 +++++++
> tests/f_badjour_encrypted/name | 1 +
> tests/f_badjour_encrypted/script | 11 +++++++++++
> 5 files changed, 51 insertions(+), 1 deletion(-)
> create mode 100644 tests/f_badjour_encrypted/expect.1
> create mode 100644 tests/f_badjour_encrypted/expect.2
> create mode 100644 tests/f_badjour_encrypted/name
> create mode 100644 tests/f_badjour_encrypted/script
>
> diff --git a/e2fsck/journal.c b/e2fsck/journal.c
> index d802c5e9..343e48ba 100644
> --- a/e2fsck/journal.c
> +++ b/e2fsck/journal.c
> @@ -1039,7 +1039,8 @@ static errcode_t e2fsck_get_journal(e2fsck_t ctx, journal_t **ret_journal)
> tried_backup_jnl++;
> }
> if (!j_inode->i_ext2.i_links_count ||
> - !LINUX_S_ISREG(j_inode->i_ext2.i_mode)) {
> + !LINUX_S_ISREG(j_inode->i_ext2.i_mode) ||
> + (j_inode->i_ext2.i_flags & EXT4_ENCRYPT_FL)) {
> retval = EXT2_ET_NO_JOURNAL;
> goto try_backup_journal;
> }
> diff --git a/tests/f_badjour_encrypted/expect.1 b/tests/f_badjour_encrypted/expect.1
> new file mode 100644
> index 00000000..0b13b9eb
> --- /dev/null
> +++ b/tests/f_badjour_encrypted/expect.1
> @@ -0,0 +1,30 @@
> +Superblock has an invalid journal (inode 8).
> +Clear? yes
> +
> +*** journal has been deleted ***
> +
> +Pass 1: Checking inodes, blocks, and sizes
> +Journal inode is not in use, but contains data. Clear? yes
> +
> +Pass 2: Checking directory structure
> +Pass 3: Checking directory connectivity
> +Pass 4: Checking reference counts
> +Pass 5: Checking group summary information
> +Block bitmap differences: -(24--25) -(27--41) -(107--1113)
> +Fix? yes
> +
> +Free blocks count wrong for group #0 (934, counted=1958).
> +Fix? yes
> +
> +Free blocks count wrong (934, counted=1958).
> +Fix? yes
> +
> +Recreate journal? yes
> +
> +Creating journal (1024 blocks): Done.
> +
> +*** journal has been regenerated ***
> +
> +test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
> +test_filesys: 11/256 files (0.0% non-contiguous), 1114/2048 blocks
> +Exit status is 1
> diff --git a/tests/f_badjour_encrypted/expect.2 b/tests/f_badjour_encrypted/expect.2
> new file mode 100644
> index 00000000..76934be2
> --- /dev/null
> +++ b/tests/f_badjour_encrypted/expect.2
> @@ -0,0 +1,7 @@
> +Pass 1: Checking inodes, blocks, and sizes
> +Pass 2: Checking directory structure
> +Pass 3: Checking directory connectivity
> +Pass 4: Checking reference counts
> +Pass 5: Checking group summary information
> +test_filesys: 11/256 files (9.1% non-contiguous), 1114/2048 blocks
> +Exit status is 0
> diff --git a/tests/f_badjour_encrypted/name b/tests/f_badjour_encrypted/name
> new file mode 100644
> index 00000000..e8f4c04f
> --- /dev/null
> +++ b/tests/f_badjour_encrypted/name
> @@ -0,0 +1 @@
> +journal inode has encrypt flag
> diff --git a/tests/f_badjour_encrypted/script b/tests/f_badjour_encrypted/script
> new file mode 100644
> index 00000000..e6778f1d
> --- /dev/null
> +++ b/tests/f_badjour_encrypted/script
> @@ -0,0 +1,11 @@
> +if ! test -x $DEBUGFS_EXE; then
> + echo "$test_name: $test_description: skipped (no debugfs)"
> + return 0
> +fi
> +
> +touch $TMPFILE
> +$MKE2FS -t ext4 -b 1024 $TMPFILE 2M
> +$DEBUGFS -w -R 'set_inode_field <8> flags 0x80800' $TMPFILE
> +
> +SKIP_GUNZIP="true"
> +. $cmd_dir/run_e2fsck
>
> base-commit: aad34909b6648579f42dade5af5b46821aa4d845
> --
> 2.38.1
>
Cheers, Andreas
[-- Attachment #2: Message signed with OpenPGP --]
[-- Type: application/pgp-signature, Size: 873 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [e2fsprogs PATCH v2] e2fsck: don't allow journal inode to have encrypt flag
2022-11-02 22:05 [e2fsprogs PATCH v2] e2fsck: don't allow journal inode to have encrypt flag Eric Biggers
2022-11-02 22:48 ` Andreas Dilger
@ 2023-01-09 18:20 ` Eric Biggers
2023-01-19 15:27 ` Theodore Ts'o
2 siblings, 0 replies; 4+ messages in thread
From: Eric Biggers @ 2023-01-09 18:20 UTC (permalink / raw
To: linux-ext4; +Cc: linux-fscrypt
On Wed, Nov 02, 2022 at 03:05:51PM -0700, Eric Biggers wrote:
> From: Eric Biggers <ebiggers@google.com>
>
> Since the kernel is being fixed to consider journal inodes with the
> 'encrypt' flag set to be invalid, also update e2fsck accordingly.
>
> Signed-off-by: Eric Biggers <ebiggers@google.com>
> ---
>
> v2: generate the test filesystem image dynamically.
Ping.
- Eric
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [e2fsprogs PATCH v2] e2fsck: don't allow journal inode to have encrypt flag
2022-11-02 22:05 [e2fsprogs PATCH v2] e2fsck: don't allow journal inode to have encrypt flag Eric Biggers
2022-11-02 22:48 ` Andreas Dilger
2023-01-09 18:20 ` Eric Biggers
@ 2023-01-19 15:27 ` Theodore Ts'o
2 siblings, 0 replies; 4+ messages in thread
From: Theodore Ts'o @ 2023-01-19 15:27 UTC (permalink / raw
To: Eric Biggers, linux-ext4; +Cc: Theodore Ts'o, linux-fscrypt
On Wed, 2 Nov 2022 15:05:51 -0700, Eric Biggers wrote:
> From: Eric Biggers <ebiggers@google.com>
>
> Since the kernel is being fixed to consider journal inodes with the
> 'encrypt' flag set to be invalid, also update e2fsck accordingly.
>
>
Applied, thanks!
[1/1] e2fsck: don't allow journal inode to have encrypt flag
commit: b0cd09e5b65373fc9f89048958c093bb1e6a1ecb
Best regards,
--
Theodore Ts'o <tytso@mit.edu>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-01-19 15:27 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-02 22:05 [e2fsprogs PATCH v2] e2fsck: don't allow journal inode to have encrypt flag Eric Biggers
2022-11-02 22:48 ` Andreas Dilger
2023-01-09 18:20 ` Eric Biggers
2023-01-19 15:27 ` 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 read-only IMAP folder(s) and NNTP newsgroup(s).