forked from rpms/kernel
		
	Merge branch 'master' of ssh://pkgs.fedoraproject.org/kernel
This commit is contained in:
		
						commit
						7cb2263fc3
					
				
							
								
								
									
										66
									
								
								ext4-dont-manipulate-recovery-flag-when-freezing.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								ext4-dont-manipulate-recovery-flag-when-freezing.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,66 @@ | |||||||
|  | From: Eric Sandeen <sandeen@xxxxxxxxxx> | ||||||
|  | Date: Wed, 05 Aug 2015 15:13:58 -0700 | ||||||
|  | Subject: [PATCH] ext4: don't manipulate recovery flag when freezing no-journal fs | ||||||
|  | 
 | ||||||
|  | At some point along this sequence of changes: | ||||||
|  | 
 | ||||||
|  | f6e63f9 ext4: fold ext4_nojournal_sops into ext4_sops | ||||||
|  | bb04457 ext4: support freezing ext2 (nojournal) file systems | ||||||
|  | 9ca9238 ext4: Use separate super_operations structure for no_journal filesystems | ||||||
|  | 
 | ||||||
|  | ext4 started setting needs_recovery on filesystems without journals | ||||||
|  | when they are unfrozen.  This makes no sense, and in fact confuses | ||||||
|  | blkid to the point where it doesn't recognize the filesystem at all. | ||||||
|  | 
 | ||||||
|  | (freeze ext2; unfreeze ext2; run blkid; see no output; run dumpe2fs, | ||||||
|  | see needs_recovery set on fs w/ no journal). | ||||||
|  | 
 | ||||||
|  | To fix this, don't manipulate the INCOMPAT_RECOVER feature on | ||||||
|  | filesystems without journals. | ||||||
|  | 
 | ||||||
|  | Reported-by: Stu Mark <smark@xxxxxxxxx> | ||||||
|  | Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> | ||||||
|  | ---
 | ||||||
|  | 
 | ||||||
|  | Note, is there a reason that in ext4_freeze, if journal_flush | ||||||
|  | fails, we skip the ext4_commit_super call?  I didn't change that | ||||||
|  | here, but it seems odd. | ||||||
|  | 
 | ||||||
|  | diff --git a/fs/ext4/super.c b/fs/ext4/super.c
 | ||||||
|  | index 58987b5..e7b345d 100644
 | ||||||
|  | --- a/fs/ext4/super.c
 | ||||||
|  | +++ b/fs/ext4/super.c
 | ||||||
|  | @@ -4833,10 +4833,11 @@ static int ext4_freeze(struct super_block *sb)
 | ||||||
|  |  		error = jbd2_journal_flush(journal); | ||||||
|  |  		if (error < 0) | ||||||
|  |  			goto out; | ||||||
|  | +
 | ||||||
|  | +		/* Journal blocked and flushed, clear needs_recovery flag. */
 | ||||||
|  | +		EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
 | ||||||
|  |  	} | ||||||
|  |   | ||||||
|  | -	/* Journal blocked and flushed, clear needs_recovery flag. */
 | ||||||
|  | -	EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
 | ||||||
|  |  	error = ext4_commit_super(sb, 1); | ||||||
|  |  out: | ||||||
|  |  	if (journal) | ||||||
|  | @@ -4854,8 +4855,11 @@ static int ext4_unfreeze(struct super_block *sb)
 | ||||||
|  |  	if (sb->s_flags & MS_RDONLY) | ||||||
|  |  		return 0; | ||||||
|  |   | ||||||
|  | -	/* Reset the needs_recovery flag before the fs is unlocked. */
 | ||||||
|  | -	EXT4_SET_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
 | ||||||
|  | +	if (EXT4_SB(sb)->s_journal) {
 | ||||||
|  | +		/* Reset the needs_recovery flag before the fs is unlocked. */
 | ||||||
|  | +		EXT4_SET_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER);
 | ||||||
|  | +	}
 | ||||||
|  | +
 | ||||||
|  |  	ext4_commit_super(sb, 1); | ||||||
|  |  	return 0; | ||||||
|  |  } | ||||||
|  | 
 | ||||||
|  | --
 | ||||||
|  | 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 | ||||||
|  | 
 | ||||||
| @ -593,6 +593,9 @@ Patch509: ideapad-laptop-Add-Lenovo-Yoga-3-14-to-no_hw_rfkill-.patch | |||||||
| #rhbz 1253789 | #rhbz 1253789 | ||||||
| Patch510: iSCSI-let-session-recovery_tmo-sysfs-writes-persist.patch | Patch510: iSCSI-let-session-recovery_tmo-sysfs-writes-persist.patch | ||||||
| 
 | 
 | ||||||
|  | #rhbz 1250717 | ||||||
|  | Patch512: ext4-dont-manipulate-recovery-flag-when-freezing.patch | ||||||
|  | 
 | ||||||
| Patch904: kdbus.patch | Patch904: kdbus.patch | ||||||
| 
 | 
 | ||||||
| # END OF PATCH DEFINITIONS | # END OF PATCH DEFINITIONS | ||||||
| @ -2030,6 +2033,9 @@ fi | |||||||
| # | # | ||||||
| #  | #  | ||||||
| %changelog | %changelog | ||||||
|  | * Thu Aug 20 2015 Josh Boyer <jwboyer@fedoraproject.org> | ||||||
|  | - Fix incorrect ext4 freezing behavior on non-journaled fs (rhbz 1250717) | ||||||
|  | 
 | ||||||
| * Wed Aug 19 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.2.0-0.rc7.git2.1 | * Wed Aug 19 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.2.0-0.rc7.git2.1 | ||||||
| - Linux v4.2-rc7-24-g1b647a166f07 | - Linux v4.2-rc7-24-g1b647a166f07 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user