Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								1259ab75c6 
								
							 
						 
						
							
							
								
								Btrfs: Handle write errors on raid1 and raid10  
							
							 
							
							... 
							
							
							
							When duplicate copies exist, writes are allowed to fail to one of those
copies.  This changeset includes a few changes that allow the FS to
continue even when some IOs fail.
It also adds verification of the parent generation number for btree blocks.
This generation is stored in the pointer to a block, and it ensures
that missed writes to are detected.
Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:04:03 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								ca7a79ad8d 
								
							 
						 
						
							
							
								
								Btrfs: Pass down the expected generation number when reading tree blocks  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:04:03 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								44b8bd7edd 
								
							 
						 
						
							
							
								
								Btrfs: Create a work queue for bio writes  
							
							 
							
							... 
							
							
							
							This allows checksumming to happen in parallel among many cpus, and
keeps us from bogging down pdflush with the checksumming code.
Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:04:01 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								f29844623d 
								
							 
						 
						
							
							
								
								Btrfs: Write out all super blocks on commit, and bring back proper barrier support  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:04:01 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								22c599485b 
								
							 
						 
						
							
							
								
								Btrfs: Handle data block end_io through the async work queue  
							
							 
							
							... 
							
							
							
							Before it was done by the bio end_io routine, the work queue code is able
to scale much better with faster IO subsystems.
Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:04:01 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								0999df54f8 
								
							 
						 
						
							
							
								
								Btrfs: Verify checksums on tree blocks found without read_tree_block  
							
							 
							
							... 
							
							
							
							Checksums were only verified by btrfs_read_tree_block, which meant the
functions to probe the page cache for blocks were not validating checksums.
Normally this is fine because the buffers will only be in cache if they
have already been validated.
But, there is a window while the buffer is being read from disk where
it could be up to date in the cache but not yet verified.  This patch
makes sure all buffers go through checksum verification before they
are used.
This is safer, and it prevents modification of buffers before they go
through the csum code.
Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:04:01 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								8a4b83cc8b 
								
							 
						 
						
							
							
								
								Btrfs: Add support for device scanning and detection ioctls  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:04:01 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								0b86a832a1 
								
							 
						 
						
							
							
								
								Btrfs: Add support for multiple devices per filesystem  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:04:00 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								e2008b6140 
								
							 
						 
						
							
							
								
								Btrfs: Add some simple throttling to wait for data=ordered and snapshot deletion  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:03:59 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								dc17ff8f11 
								
							 
						 
						
							
							
								
								Btrfs: Add data=ordered support  
							
							 
							
							... 
							
							
							
							This forces file data extents down the disk along with the metadata that
references them.  The current implementation is fairly simple, and just
writes out all of the dirty pages in an inode before the commit.
Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:03:59 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								edbd8d4efe 
								
							 
						 
						
							
							
								
								Btrfs: Support for online FS resize (grow and shrink)  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:03:58 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								ff79f8190b 
								
							 
						 
						
							
							
								
								Btrfs: Add back file data checksumming  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:03:57 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								6b80053d02 
								
							 
						 
						
							
							
								
								Btrfs: Add back the online defragging code  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:03:56 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								db94535db7 
								
							 
						 
						
							
							
								
								Btrfs: Allow tree blocks larger than the page size  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:03:56 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								5f39d397df 
								
							 
						 
						
							
							
								
								Btrfs: Create extent_buffer interface for large blocksizes  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:03:56 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								d3c2fdcf7b 
								
							 
						 
						
							
							
								
								Btrfs: Use balance_dirty_pages_nr on btree blocks  
							
							 
							
							... 
							
							
							
							btrfs_btree_balance_dirty is changed to pass the number of pages dirtied
for more accurate dirty throttling.  This lets the VM make better decisions
about when to force some writeback.
Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2008-09-25 11:00:48 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								86479a04ee 
								
							 
						 
						
							
							
								
								Add support for defragging files via btrfsctl -d.  Avoid OOM on extent tree  
							
							 
							
							... 
							
							
							
							defrag.
Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-09-10 19:58:16 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Josef Bacik 
								
							 
						 
						
							
							
							
							
								
							
							
								58176a9604 
								
							 
						 
						
							
							
								
								Btrfs: Add per-root block accounting and sysfs entries  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-08-29 15:47:34 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								a52d9a8033 
								
							 
						 
						
							
							
								
								Btrfs: Extent based page cache code.  This uses an rbtree of extents and tests  
							
							 
							
							... 
							
							
							
							instead of buffer heads.
Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-08-27 16:49:44 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								f2183bde1a 
								
							 
						 
						
							
							
								
								Btrfs: Add BH_Defrag to mark buffers that are in need of defragging  
							
							 
							
							... 
							
							
							
							This allows the tree walking code to defrag only the newly allocated
buffers, it seems to be a good balance between perfect defragging and the
performance hit of repeatedly reallocating blocks.
Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-08-10 14:42:37 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								ccd467d60e 
								
							 
						 
						
							
							
								
								Btrfs: crash recovery fixes  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-06-28 15:57:36 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								5eda7b5e9b 
								
							 
						 
						
							
							
								
								Btrfs: Add the ability to find and remove dead roots after a crash.  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-06-22 14:16:25 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								6cbd557078 
								
							 
						 
						
							
							
								
								Btrfs: add GPLv2  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-06-12 09:07:21 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								35b7e47610 
								
							 
						 
						
							
							
								
								Btrfs: fix page cache memory leak  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-05-02 15:53:43 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								090d18753c 
								
							 
						 
						
							
							
								
								Btrfs: directory readahead  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-05-01 08:53:32 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								b4100d6424 
								
							 
						 
						
							
							
								
								Btrfs: add a device id to device items  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-04-12 12:14:00 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								8352d8a473 
								
							 
						 
						
							
							
								
								Btrfs: add disk ioctl, mostly working  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-04-12 10:43:05 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								7eccb903a8 
								
							 
						 
						
							
							
								
								Btrfs: create a logical->phsyical block number mapping scheme  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-04-11 15:53:25 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								0f7d52f443 
								
							 
						 
						
							
							
								
								Btrfs: groundwork for subvolume and snapshot roots  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-04-09 10:42:37 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								2c90e5d658 
								
							 
						 
						
							
							
								
								Btrfs: still corruption hunting  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-04-02 10:50:19 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								f254e52c1c 
								
							 
						 
						
							
							
								
								Btrfs: verify csums on read  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-03-29 15:15:27 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								d98237b3ed 
								
							 
						 
						
							
							
								
								Btrfs: use a btree inode instead of sb_getblk  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-03-28 13:57:48 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								79154b1b5b 
								
							 
						 
						
							
							
								
								Btrfs: transaction rework  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-03-22 15:59:16 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								e20d96d64f 
								
							 
						 
						
							
							
								
								Mountable btrfs, with readdir  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-03-22 12:13:20 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								2e635a2783 
								
							 
						 
						
							
							
								
								Btrfs: initial move to kernel module land  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-03-21 11:12:56 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								e089f05c18 
								
							 
						 
						
							
							
								
								Btrfs: transaction handles everywhere  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-03-16 16:20:31 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								123abc88c9 
								
							 
						 
						
							
							
								
								Btrfs: variable block size support  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-03-14 14:14:43 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								3768f3689f 
								
							 
						 
						
							
							
								
								Btrfs: Change the super to point to a tree of trees to enable persistent snapshots  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-03-13 16:47:54 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								234b63a091 
								
							 
						 
						
							
							
								
								rename funcs and structs to btrfs  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-03-13 10:46:10 -04:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								a28ec19775 
								
							 
						 
						
							
							
								
								Btrfs: Fixup reference counting on cows  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-03-06 20:08:01 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								ed2ff2cba7 
								
							 
						 
						
							
							
								
								Btrfs: pretend page cache & commit code  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-03-01 18:59:40 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								9a8dd1502d 
								
							 
						 
						
							
							
								
								Btrfs: Block sized tree extents and extent deletion  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-02-23 08:38:36 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								cfaa72952f 
								
							 
						 
						
							
							
								
								Btrfs: extent fixes  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-02-21 17:04:57 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								d97e63b69e 
								
							 
						 
						
							
							
								
								Btrfs: early extent mapping support  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-02-20 16:40:44 -05:00  
						
						
							 
							
							
								 
							 
							
						 
					 
				
					
						
							
								
								
									 
									Chris Mason 
								
							 
						 
						
							
							
							
							
								
							
							
								eb60ceac0e 
								
							 
						 
						
							
							
								
								Btrfs: Add backing store, memory management  
							
							 
							
							... 
							
							
							
							Signed-off-by: Chris Mason <chris.mason@oracle.com> 
							
						 
						
							2007-02-02 09:18:22 -05:00