forked from rpms/kernel
		
	Linux v3.4-rc3
This commit is contained in:
		
							parent
							
								
									2c409a6d2b
								
							
						
					
					
						commit
						9a3c2ce6f0
					
				| @ -1,71 +0,0 @@ | ||||
| On Tue, Apr 03, 2012 at 12:50:55PM -0400, Dave Jones wrote: | ||||
|  > On Tue, Apr 03, 2012 at 06:33:43PM +0200, David Sterba wrote: | ||||
|  >  > On Tue, Apr 03, 2012 at 12:20:23PM -0400, Dave Jones wrote: | ||||
|  >  > > I see a lot of these .. | ||||
|  >  > >  | ||||
|  >  > > btrfs: __btrfs_end_transaction -EIO abored=1802201963 (no super error) | ||||
|  >  >  | ||||
|  >  > 1802201963 == 0x6b6b6b6b | ||||
|  >  >  | ||||
|  >  > #define POISON_FREE     0x6b    /* for use-after-free poisoning */ | ||||
|  >  >  | ||||
|  >  > hmm | ||||
|  >  | ||||
|  > wait, what... | ||||
|  >  | ||||
|  >  535         memset(trans, 0, sizeof(*trans)); | ||||
|  >  536         kmem_cache_free(btrfs_trans_handle_cachep, trans); | ||||
|  >  537  | ||||
|  >  538         if (throttle) | ||||
|  >  539                 btrfs_run_delayed_iputs(root); | ||||
|  >  540  | ||||
|  >  541         if (trans->aborted || | ||||
|  >  542             root->fs_info->fs_state & BTRFS_SUPER_FLAG_ERROR) { | ||||
|  >  543                 return -EIO; | ||||
|  >  544         } | ||||
|  >  | ||||
|  > that looks like a pretty clear use-after-free. | ||||
| 
 | ||||
| Ok, trying this.. | ||||
| 
 | ||||
| 
 | ||||
| diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
 | ||||
| index 8da29e8..11b77a5 100644
 | ||||
| --- a/fs/btrfs/transaction.c
 | ||||
| +++ b/fs/btrfs/transaction.c
 | ||||
| @@ -480,6 +480,7 @@ static int __btrfs_end_transaction(struct btrfs_trans_handle *trans,
 | ||||
|  	struct btrfs_transaction *cur_trans = trans->transaction; | ||||
|  	struct btrfs_fs_info *info = root->fs_info; | ||||
|  	int count = 0; | ||||
| +	int err = 0;
 | ||||
|   | ||||
|  	if (--trans->use_count) { | ||||
|  		trans->block_rsv = trans->orig_rsv; | ||||
| @@ -532,18 +533,18 @@ static int __btrfs_end_transaction(struct btrfs_trans_handle *trans,
 | ||||
|   | ||||
|  	if (current->journal_info == trans) | ||||
|  		current->journal_info = NULL; | ||||
| -	memset(trans, 0, sizeof(*trans));
 | ||||
| -	kmem_cache_free(btrfs_trans_handle_cachep, trans);
 | ||||
|   | ||||
|  	if (throttle) | ||||
|  		btrfs_run_delayed_iputs(root); | ||||
|   | ||||
|  	if (trans->aborted || | ||||
|  	    root->fs_info->fs_state & BTRFS_SUPER_FLAG_ERROR) { | ||||
| -		return -EIO;
 | ||||
| +		err = -EIO;
 | ||||
|  	} | ||||
|   | ||||
| -	return 0;
 | ||||
| +	memset(trans, 0, sizeof(*trans));
 | ||||
| +	kmem_cache_free(btrfs_trans_handle_cachep, trans);
 | ||||
| +	return err;
 | ||||
|  } | ||||
|   | ||||
|  int btrfs_end_transaction(struct btrfs_trans_handle *trans, | ||||
| --
 | ||||
| To unsubscribe from this list: send the line "unsubscribe linux-kernel" in | ||||
| the body of a message to majordomo@vger.kernel.org | ||||
| More majordomo info at  http://vger.kernel.org/majordomo-info.html | ||||
| Please read the FAQ at  http://www.tux.org/lkml/ | ||||
| @ -1464,13 +1464,13 @@ CONFIG_B43_SDIO=y | ||||
| CONFIG_B43_BCMA=y | ||||
| # CONFIG_B43_BCMA_EXTRA is not set | ||||
| CONFIG_B43_BCMA_PIO=y | ||||
| CONFIG_B43_DEBUG=y | ||||
| # CONFIG_B43_DEBUG is not set | ||||
| CONFIG_B43_PHY_LP=y | ||||
| CONFIG_B43_PHY_N=y | ||||
| CONFIG_B43_PHY_HT=y | ||||
| # CONFIG_B43_FORCE_PIO is not set | ||||
| CONFIG_B43LEGACY=m | ||||
| CONFIG_B43LEGACY_DEBUG=y | ||||
| # CONFIG_B43LEGACY_DEBUG is not set | ||||
| CONFIG_B43LEGACY_DMA=y | ||||
| CONFIG_B43LEGACY_PIO=y | ||||
| CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y | ||||
| @ -3054,7 +3054,7 @@ CONFIG_USB_STORAGE_REALTEK=m | ||||
| CONFIG_REALTEK_AUTOPM=y | ||||
| CONFIG_USB_STORAGE_ENE_UB6250=m | ||||
| # CONFIG_USB_LIBUSUAL is not set | ||||
| CONFIG_USB_UAS=m | ||||
| # CONFIG_USB_UAS is not set | ||||
| 
 | ||||
| 
 | ||||
| # | ||||
| @ -3959,7 +3959,7 @@ CONFIG_IBMASR=m | ||||
| CONFIG_PM_DEBUG=y | ||||
| CONFIG_PM_TRACE=y | ||||
| CONFIG_PM_TRACE_RTC=y | ||||
| CONFIG_PM_TEST_SUSPEND=y | ||||
| # CONFIG_PM_TEST_SUSPEND is not set | ||||
| CONFIG_PM_RUNTIME=y | ||||
| # CONFIG_PM_OPP is not set | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										108
									
								
								config-nodebug
									
									
									
									
									
								
							
							
						
						
									
										108
									
								
								config-nodebug
									
									
									
									
									
								
							| @ -2,109 +2,109 @@ CONFIG_SND_VERBOSE_PRINTK=y | ||||
| CONFIG_SND_DEBUG=y | ||||
| CONFIG_SND_PCM_XRUN_DEBUG=y | ||||
| 
 | ||||
| CONFIG_DEBUG_ATOMIC_SLEEP=y | ||||
| # CONFIG_DEBUG_ATOMIC_SLEEP is not set | ||||
| 
 | ||||
| CONFIG_DEBUG_MUTEXES=y | ||||
| CONFIG_DEBUG_RT_MUTEXES=y | ||||
| CONFIG_DEBUG_LOCK_ALLOC=y | ||||
| CONFIG_PROVE_LOCKING=y | ||||
| CONFIG_DEBUG_SPINLOCK=y | ||||
| CONFIG_PROVE_RCU=y | ||||
| # CONFIG_DEBUG_MUTEXES is not set | ||||
| # CONFIG_DEBUG_RT_MUTEXES is not set | ||||
| # CONFIG_DEBUG_LOCK_ALLOC is not set | ||||
| # CONFIG_PROVE_LOCKING is not set | ||||
| # CONFIG_DEBUG_SPINLOCK is not set | ||||
| # CONFIG_PROVE_RCU is not set | ||||
| # CONFIG_PROVE_RCU_REPEATEDLY is not set | ||||
| CONFIG_DEBUG_PER_CPU_MAPS=y | ||||
| # CONFIG_DEBUG_PER_CPU_MAPS is not set | ||||
| CONFIG_CPUMASK_OFFSTACK=y | ||||
| 
 | ||||
| CONFIG_CPU_NOTIFIER_ERROR_INJECT=m | ||||
| # CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set | ||||
| 
 | ||||
| CONFIG_FAULT_INJECTION=y | ||||
| CONFIG_FAILSLAB=y | ||||
| CONFIG_FAIL_PAGE_ALLOC=y | ||||
| CONFIG_FAIL_MAKE_REQUEST=y | ||||
| CONFIG_FAULT_INJECTION_DEBUG_FS=y | ||||
| CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y | ||||
| CONFIG_FAIL_IO_TIMEOUT=y | ||||
| CONFIG_FAIL_MMC_REQUEST=y | ||||
| # CONFIG_FAULT_INJECTION is not set | ||||
| # CONFIG_FAILSLAB is not set | ||||
| # CONFIG_FAIL_PAGE_ALLOC is not set | ||||
| # CONFIG_FAIL_MAKE_REQUEST is not set | ||||
| # CONFIG_FAULT_INJECTION_DEBUG_FS is not set | ||||
| # CONFIG_FAULT_INJECTION_STACKTRACE_FILTER is not set | ||||
| # CONFIG_FAIL_IO_TIMEOUT is not set | ||||
| # CONFIG_FAIL_MMC_REQUEST is not set | ||||
| 
 | ||||
| CONFIG_SLUB_DEBUG_ON=y | ||||
| # CONFIG_SLUB_DEBUG_ON is not set | ||||
| 
 | ||||
| CONFIG_LOCK_STAT=y | ||||
| # CONFIG_LOCK_STAT is not set | ||||
| 
 | ||||
| CONFIG_DEBUG_STACK_USAGE=y | ||||
| # CONFIG_DEBUG_STACK_USAGE is not set | ||||
| 
 | ||||
| CONFIG_ACPI_DEBUG=y | ||||
| # CONFIG_ACPI_DEBUG is not set | ||||
| # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set | ||||
| 
 | ||||
| CONFIG_DEBUG_SG=y | ||||
| # CONFIG_DEBUG_SG is not set | ||||
| 
 | ||||
| # CONFIG_DEBUG_PAGEALLOC is not set | ||||
| 
 | ||||
| CONFIG_DEBUG_WRITECOUNT=y | ||||
| CONFIG_DEBUG_OBJECTS=y | ||||
| # CONFIG_DEBUG_WRITECOUNT is not set | ||||
| # CONFIG_DEBUG_OBJECTS is not set | ||||
| # CONFIG_DEBUG_OBJECTS_SELFTEST is not set | ||||
| CONFIG_DEBUG_OBJECTS_FREE=y | ||||
| CONFIG_DEBUG_OBJECTS_TIMERS=y | ||||
| CONFIG_DEBUG_OBJECTS_RCU_HEAD=y | ||||
| # CONFIG_DEBUG_OBJECTS_FREE is not set | ||||
| # CONFIG_DEBUG_OBJECTS_TIMERS is not set | ||||
| # CONFIG_DEBUG_OBJECTS_RCU_HEAD is not set | ||||
| CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 | ||||
| 
 | ||||
| CONFIG_X86_PTDUMP=y | ||||
| # CONFIG_X86_PTDUMP is not set | ||||
| 
 | ||||
| CONFIG_CAN_DEBUG_DEVICES=y | ||||
| # CONFIG_CAN_DEBUG_DEVICES is not set | ||||
| 
 | ||||
| CONFIG_MODULE_FORCE_UNLOAD=y | ||||
| # CONFIG_MODULE_FORCE_UNLOAD is not set | ||||
| 
 | ||||
| CONFIG_SYSCTL_SYSCALL_CHECK=y | ||||
| # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||||
| 
 | ||||
| CONFIG_DEBUG_NOTIFIERS=y | ||||
| # CONFIG_DEBUG_NOTIFIERS is not set | ||||
| 
 | ||||
| CONFIG_DMA_API_DEBUG=y | ||||
| # CONFIG_DMA_API_DEBUG is not set | ||||
| 
 | ||||
| CONFIG_MMIOTRACE=y | ||||
| # CONFIG_MMIOTRACE is not set | ||||
| 
 | ||||
| CONFIG_DEBUG_CREDENTIALS=y | ||||
| # CONFIG_DEBUG_CREDENTIALS is not set | ||||
| 
 | ||||
| # off in both production debug and nodebug builds, | ||||
| #  on in rawhide nodebug builds | ||||
| CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y | ||||
| # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||||
| 
 | ||||
| CONFIG_EXT4_DEBUG=y | ||||
| # CONFIG_EXT4_DEBUG is not set | ||||
| 
 | ||||
| CONFIG_DEBUG_PERF_USE_VMALLOC=y | ||||
| # CONFIG_DEBUG_PERF_USE_VMALLOC is not set | ||||
| 
 | ||||
| CONFIG_JBD2_DEBUG=y | ||||
| # CONFIG_JBD2_DEBUG is not set | ||||
| 
 | ||||
| CONFIG_DEBUG_BLK_CGROUP=y | ||||
| # CONFIG_DEBUG_BLK_CGROUP is not set | ||||
| 
 | ||||
| CONFIG_DRBD_FAULT_INJECTION=y | ||||
| # CONFIG_DRBD_FAULT_INJECTION is not set | ||||
| 
 | ||||
| CONFIG_ATH_DEBUG=y | ||||
| CONFIG_CARL9170_DEBUGFS=y | ||||
| CONFIG_IWLWIFI_DEVICE_TRACING=y | ||||
| # CONFIG_ATH_DEBUG is not set | ||||
| # CONFIG_CARL9170_DEBUGFS is not set | ||||
| # CONFIG_IWLWIFI_DEVICE_TRACING is not set | ||||
| 
 | ||||
| CONFIG_DEBUG_OBJECTS_WORK=y | ||||
| # CONFIG_DEBUG_OBJECTS_WORK is not set | ||||
| 
 | ||||
| CONFIG_DMADEVICES_DEBUG=y | ||||
| CONFIG_DMADEVICES_VDEBUG=y | ||||
| # CONFIG_DMADEVICES_DEBUG is not set | ||||
| # CONFIG_DMADEVICES_VDEBUG is not set | ||||
| 
 | ||||
| CONFIG_PM_ADVANCED_DEBUG=y | ||||
| 
 | ||||
| CONFIG_CEPH_LIB_PRETTYDEBUG=y | ||||
| CONFIG_QUOTA_DEBUG=y | ||||
| # CONFIG_CEPH_LIB_PRETTYDEBUG is not set | ||||
| # CONFIG_QUOTA_DEBUG is not set | ||||
| 
 | ||||
| CONFIG_PCI_DEFAULT_USE_CRS=y | ||||
| 
 | ||||
| CONFIG_KGDB_KDB=y | ||||
| CONFIG_KDB_KEYBOARD=y | ||||
| 
 | ||||
| CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y | ||||
| CONFIG_TEST_LIST_SORT=y | ||||
| # CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set | ||||
| # CONFIG_TEST_LIST_SORT is not set | ||||
| 
 | ||||
| CONFIG_DETECT_HUNG_TASK=y | ||||
| # CONFIG_DETECT_HUNG_TASK is not set | ||||
| CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 | ||||
| # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||||
| 
 | ||||
| CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y | ||||
| # CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK is not set | ||||
| 
 | ||||
| CONFIG_DEBUG_KMEMLEAK=y | ||||
| # CONFIG_DEBUG_KMEMLEAK is not set | ||||
| CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=1024 | ||||
| # CONFIG_DEBUG_KMEMLEAK_TEST is not set | ||||
| CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y | ||||
|  | ||||
| @ -313,7 +313,7 @@ CONFIG_STRICT_DEVMEM=y | ||||
| # CONFIG_NO_BOOTMEM is not set | ||||
| 
 | ||||
| # CONFIG_MEMTEST is not set | ||||
| CONFIG_MAXSMP=y | ||||
| # CONFIG_MAXSMP is not set | ||||
| 
 | ||||
| 
 | ||||
| CONFIG_HP_ILO=m | ||||
|  | ||||
							
								
								
									
										15
									
								
								kernel.spec
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								kernel.spec
									
									
									
									
									
								
							| @ -93,9 +93,9 @@ Summary: The Linux kernel | ||||
| # The next upstream release sublevel (base_sublevel+1) | ||||
| %define upstream_sublevel %(echo $((%{base_sublevel} + 1))) | ||||
| # The rc snapshot level | ||||
| %define rcrev 2 | ||||
| %define rcrev 3 | ||||
| # The git snapshot level | ||||
| %define gitrev 3 | ||||
| %define gitrev 0 | ||||
| # Set rpm version accordingly | ||||
| %define rpmversion 3.%{upstream_sublevel}.0 | ||||
| %endif | ||||
| @ -163,7 +163,7 @@ Summary: The Linux kernel | ||||
| # Set debugbuildsenabled to 1 for production (build separate debug kernels) | ||||
| #  and 0 for rawhide (all kernels are debug kernels). | ||||
| # See also 'make debug' and 'make release'. | ||||
| %define debugbuildsenabled 0 | ||||
| %define debugbuildsenabled 1 | ||||
| 
 | ||||
| # Want to build a vanilla kernel build without any non-upstream patches? | ||||
| %define with_vanilla %{?_with_vanilla: 1} %{?!_with_vanilla: 0} | ||||
| @ -176,7 +176,7 @@ Summary: The Linux kernel | ||||
| %define doc_build_fail true | ||||
| %endif | ||||
| 
 | ||||
| %define rawhide_skip_docs 1 | ||||
| %define rawhide_skip_docs 0 | ||||
| %if 0%{?rawhide_skip_docs} | ||||
| %define with_doc 0 | ||||
| %define doc_build_fail true | ||||
| @ -701,7 +701,6 @@ Patch2900: linux-2.6-v4l-dvb-update.patch | ||||
| Patch2901: linux-2.6-v4l-dvb-experimental.patch | ||||
| 
 | ||||
| # fs fixes | ||||
| Patch4000: btrfs-use-after-free.patch | ||||
| 
 | ||||
| # NFSv4 | ||||
| 
 | ||||
| @ -1317,8 +1316,6 @@ ApplyPatch arm-tegra-nvec-kconfig.patch | ||||
| # xfs | ||||
| 
 | ||||
| # btrfs | ||||
| ApplyPatch btrfs-use-after-free.patch | ||||
| 
 | ||||
| 
 | ||||
| # eCryptfs | ||||
| 
 | ||||
| @ -2298,6 +2295,10 @@ fi | ||||
| #                 ||----w | | ||||
| #                 ||     || | ||||
| %changelog | ||||
| * Mon Apr 16 2012 Justin M. Forbes <jforbes@redhat.com> - 3.4.0-0.rc3.git0.1 | ||||
| - Linux v3.4-rc3 | ||||
| - Disable debugging options. | ||||
| 
 | ||||
| * Fri Apr 13 2012 Justin M. Forbes <jforbes@redhat.com> - 3.4.0-0.rc2.git3.1 | ||||
| - Linux v3.4-rc2-269-g4166fb6 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user