summaryrefslogtreecommitdiffstats
path: root/fs/ext4/super.c
diff options
context:
space:
mode:
authorTheodore Ts'o2011-11-07 16:47:42 +0100
committerTheodore Ts'o2011-11-07 16:47:42 +0100
commiteb513689c97e3e73bb9b4459d490a8e894b4a546 (patch)
tree767931920c50055b4416b4554fa2dfac4c579b2a /fs/ext4/super.c
parentVFS: fix statfs() automounter semantics regression (diff)
downloadkernel-qcow2-linux-eb513689c97e3e73bb9b4459d490a8e894b4a546.tar.gz
kernel-qcow2-linux-eb513689c97e3e73bb9b4459d490a8e894b4a546.tar.xz
kernel-qcow2-linux-eb513689c97e3e73bb9b4459d490a8e894b4a546.zip
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@mit.edu>
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r--fs/ext4/super.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 9953d80145ad..0435013dbd46 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;