- percpu-counter-data-type-changes-to-suppport-fix-fix.patch removed from -mm tree

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

 



The patch titled

     txt/percpu-counter-data-type-changes-to-suppport-fix fix

has been removed from the -mm tree.  Its filename is

     percpu-counter-data-type-changes-to-suppport-fix-fix.patch

This patch was probably dropped from -mm because
it has now been merged into a subsystem tree or
into Linus's tree, or because it was folded into
its parent patch in the -mm tree.

------------------------------------------------------
Subject: txt/percpu-counter-data-type-changes-to-suppport-fix fix
From: Mingming Cao <cmm@xxxxxxxxxx>


Since we had a unclean reboot, so the failing path is like this:
	ext3_fill_super()
		->ext3_orphan_cleanup()
			->iput()
			....
				->ext3_free_blocks()
					->percpu_counter_mod()
						oops, the counter hasn't initialized yet.

The percpu counter initialization need to be done after the block group
descriptors are being loaded, but should be done before calling
ext3_orphan_inode and iput().

Signed-off-by: Mingming Cao <cmm@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 fs/ext2/super.c |   13 +++++++------
 fs/ext3/super.c |   15 ++++++++-------
 2 files changed, 15 insertions(+), 13 deletions(-)

diff -puN fs/ext2/super.c~percpu-counter-data-type-changes-to-suppport-fix-fix fs/ext2/super.c
--- devel/fs/ext2/super.c~percpu-counter-data-type-changes-to-suppport-fix-fix	2006-04-28 23:26:14.000000000 -0700
+++ devel-akpm/fs/ext2/super.c	2006-04-28 23:26:14.000000000 -0700
@@ -860,6 +860,13 @@ static int ext2_fill_super(struct super_
 	sbi->s_gdb_count = db_count;
 	get_random_bytes(&sbi->s_next_generation, sizeof(u32));
 	spin_lock_init(&sbi->s_next_gen_lock);
+
+	percpu_counter_init(&sbi->s_freeblocks_counter,
+				ext2_count_free_blocks(sb));
+	percpu_counter_init(&sbi->s_freeinodes_counter,
+				ext2_count_free_inodes(sb));
+	percpu_counter_init(&sbi->s_dirs_counter,
+				ext2_count_dirs(sb));
 	/*
 	 * set up enough so that it can read an inode
 	 */
@@ -883,12 +890,6 @@ static int ext2_fill_super(struct super_
 		ext2_warning(sb, __FUNCTION__,
 			"mounting ext3 filesystem as ext2");
 	ext2_setup_super (sb, es, sb->s_flags & MS_RDONLY);
-	percpu_counter_init(&sbi->s_freeblocks_counter,
-				ext2_count_free_blocks(sb));
-	percpu_counter_init(&sbi->s_freeinodes_counter,
-				ext2_count_free_inodes(sb));
-	percpu_counter_init(&sbi->s_dirs_counter,
-				ext2_count_dirs(sb));
 	return 0;
 
 cantfind_ext2:
diff -puN fs/ext3/super.c~percpu-counter-data-type-changes-to-suppport-fix-fix fs/ext3/super.c
--- devel/fs/ext3/super.c~percpu-counter-data-type-changes-to-suppport-fix-fix	2006-04-28 23:26:14.000000000 -0700
+++ devel-akpm/fs/ext3/super.c	2006-04-28 23:26:14.000000000 -0700
@@ -1599,6 +1599,14 @@ static int ext3_fill_super (struct super
 	sbi->s_gdb_count = db_count;
 	get_random_bytes(&sbi->s_next_generation, sizeof(u32));
 	spin_lock_init(&sbi->s_next_gen_lock);
+
+	percpu_counter_init(&sbi->s_freeblocks_counter,
+		ext3_count_free_blocks(sb));
+	percpu_counter_init(&sbi->s_freeinodes_counter,
+		ext3_count_free_inodes(sb));
+	percpu_counter_init(&sbi->s_dirs_counter,
+		ext3_count_dirs(sb));
+
 	/* per fileystem reservation list head & lock */
 	spin_lock_init(&sbi->s_rsv_window_lock);
 	sbi->s_rsv_window_root = RB_ROOT;
@@ -1721,13 +1729,6 @@ static int ext3_fill_super (struct super
 		test_opt(sb,DATA_FLAGS) == EXT3_MOUNT_ORDERED_DATA ? "ordered":
 		"writeback");
 
-	percpu_counter_init(&sbi->s_freeblocks_counter,
-		ext3_count_free_blocks(sb));
-	percpu_counter_init(&sbi->s_freeinodes_counter,
-		ext3_count_free_inodes(sb));
-	percpu_counter_init(&sbi->s_dirs_counter,
-		ext3_count_dirs(sb));
-
 	lock_kernel();
 	return 0;
 
_

Patches currently in -mm which might be from cmm@xxxxxxxxxx are

percpu-counter-data-type-changes-to-suppport.patch
percpu-counter-data-type-changes-to-suppport-fix-fix.patch
percpu-counter-data-type-changes-to-suppport-fix-fix-fix.patch
avoid-disk-sector_t-overflow-for-2tb-ext3-filesystem.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux