Re: Bug In ext4 in kernels > 2.6.39 - Not mounting with arguments/options I specify in fstab on root remount

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux