- 25 Sep, 2008 21 commits
-
-
Chris Mason authored
Before, the btrfs bdi congestion function was used to test for too many async bios. This keeps that check to throttle pdflush, but also adds a check while queuing bios. Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
After writing out all the remaining btree blocks in the transaction, the commit code would use filemap_fdatawait to make sure it was all on disk. This means it would wait for blocks written by other procs as well. The new code walks the list of blocks for this transaction again and waits only for those required by this transaction. Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
The btree defragger wasn't making forward progress because the new key wasn't being saved by the btrfs_search_forward function. This also disables the automatic btree defrag, it wasn't scaling well to huge filesystems. The auto-defrag needs to be done differently. Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
The existing throttle mechanism was often not sufficient to prevent new writers from coming in and making a given transaction run forever. This adds an explicit wait at the end of most operations so they will allow the current transaction to close. There is no wait inside file_write, inode updates, or cow filling, all which have different deadlock possibilities. This is a temporary measure until better asynchronous commit support is added. This code leads to stalls as it waits for data=ordered writeback, and it really needs to be fixed. Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
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>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
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>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
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>
-
Chris Mason authored
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>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
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>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
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>
-
- 10 Sep, 2007 1 commit
-
-
Chris Mason authored
defrag. Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 29 Aug, 2007 1 commit
-
-
Josef Bacik authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 27 Aug, 2007 1 commit
-
-
Chris Mason authored
instead of buffer heads. Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 10 Aug, 2007 1 commit
-
-
Chris Mason authored
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>
-
- 28 Jun, 2007 1 commit
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 22 Jun, 2007 1 commit
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 12 Jun, 2007 1 commit
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 02 May, 2007 1 commit
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 01 May, 2007 1 commit
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 12 Apr, 2007 2 commits
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 11 Apr, 2007 1 commit
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 09 Apr, 2007 1 commit
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 02 Apr, 2007 1 commit
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 29 Mar, 2007 1 commit
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 28 Mar, 2007 1 commit
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 22 Mar, 2007 2 commits
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-
- 21 Mar, 2007 1 commit
-
-
Chris Mason authored
Signed-off-by:
Chris Mason <chris.mason@oracle.com>
-