| From 4753d8a24d4588657bc0a4cd66d4e282dff15c8c Mon Sep 17 00:00:00 2001 |
| From: Theodore Ts'o <tytso@mit.edu> |
| Date: Sun, 5 Feb 2017 01:26:48 -0500 |
| Subject: ext4: return EROFS if device is r/o and journal replay is needed |
| |
| From: Theodore Ts'o <tytso@mit.edu> |
| |
| commit 4753d8a24d4588657bc0a4cd66d4e282dff15c8c upstream. |
| |
| If the file system requires journal recovery, and the device is |
| read-ony, return EROFS to the mount system call. This allows xfstests |
| generic/050 to pass. |
| |
| Signed-off-by: Theodore Ts'o <tytso@mit.edu> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/ext4/super.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/fs/ext4/super.c |
| +++ b/fs/ext4/super.c |
| @@ -3927,7 +3927,8 @@ static int ext4_fill_super(struct super_ |
| * root first: it may be modified in the journal! |
| */ |
| if (!test_opt(sb, NOLOAD) && ext4_has_feature_journal(sb)) { |
| - if (ext4_load_journal(sb, es, journal_devnum)) |
| + err = ext4_load_journal(sb, es, journal_devnum); |
| + if (err) |
| goto failed_mount3a; |
| } else if (test_opt(sb, NOLOAD) && !(sb->s_flags & MS_RDONLY) && |
| ext4_has_feature_journal_needs_recovery(sb)) { |