On 11/07/2011 07:47 AM, Ted Ts'o wrote:
On Sun, Nov 06, 2011 at 09:26:57PM -0800, Matt Parnell wrote:
I figured it out. data=writeback isn't needed and is done by default
if there's no journal, as per commit
373cd5c53d5ea6622c319ecd84e29e2737d488bd http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=373cd5c53d5ea6622c319ecd84e29e2737d488bd
...sorry about throwing you guys through loops over this, although
I'm guessing there's still a bug in that the kernel should just warn
the user about the option when it's used and otherwise ignore it
instead of breaking if there's no journal.
Ah, OK. It wasn't clear to me that you were running without a year.
You're right, we shouldn't complain in that case, since we ignore the
messages when mounting the file system. Actually, we parse the
options when we are mounting the file system, but then we zero them
out when we discover that there's no journal; but in any case, we
should similarly ignore the pointless data=* mount options (for a file
system w/o a journal) on the remount operation as well.
- Ted
commit eb513689c97e3e73bb9b4459d490a8e894b4a546
Author: Theodore Ts'o<tytso@xxxxxxx>
Date: Mon Nov 7 10:47:42 2011 -0500
ext4: ignore journalled data options on remount if fs has no journal
This avoids a confusing failure in the init scripts when the
/etc/fstab has data=writeback or data=journal but the file system does
not have a journal. So check for this case explicitly, and warn the
user that we are ignoring the (pointless, since they have no journal)
data=* mount option.
Signed-off-by: "Theodore Ts'o"<tytso@xxxxxxx>
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 9953d80..0435013 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1683,7 +1683,9 @@ static int parse_options(char *options, struct super_block *sb,
data_opt = EXT4_MOUNT_WRITEBACK_DATA;
datacheck:
if (is_remount) {
- if (test_opt(sb, DATA_FLAGS) != data_opt) {
+ if (!sbi->s_journal)
+ ext4_msg(sb, KERN_WARNING, "Remounting file system with no journal so ignoring journalled data option");
+ else if (test_opt(sb, DATA_FLAGS) != data_opt) {
ext4_msg(sb, KERN_ERR,
"Cannot change data mode on remount");
return 0;
Great! I'm glad we managed to track this one down. I'm not using the
flags anymore, but I'll be glad when your patch there makes it into ext4
for other users.
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html