Chris Mason
a443755f1c
Btrfs: Check device uuids along with devids
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:02 -04:00
Chris Mason
e015640f9c
Btrfs: Write bio checksumming outside the FS mutex
...
This significantly improves streaming write performance by allowing
concurrency in the data checksumming.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -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
321aecc656
Btrfs: Add RAID10 support
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
e17cade25f
Btrfs: Add chunk uuids and update multi-device back references
...
Block headers now store the chunk tree uuid
Chunk items records the device uuid for each stripes
Device extent items record better back refs to the chunk tree
Block groups record better back refs to the chunk tree
The chunk tree format has also changed. The objectid of BTRFS_CHUNK_ITEM_KEY
used to be the logical offset of the chunk. Now it is a chunk tree id,
with the logical offset being stored in the offset field of the key.
This allows a single chunk tree to record multiple logical address spaces,
upping the number of bytes indexed by a chunk tree from 2^64 to
2^128.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
98d20f67cf
Add a min size parameter to btrfs_alloc_extent
...
On huge machines, delayed allocation may try to allocate massive extents.
This change allows btrfs_alloc_extent to return something smaller than
the caller asked for, and the data allocation routines will loop over
the allocations until it fills the whole delayed alloc.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
ce9adaa5a7
Btrfs: Do metadata checksums for reads via a workqueue
...
Before, metadata checksumming was done by the callers of read_tree_block,
which would set EXTENT_CSUM bits in the extent tree to show that a given
range of pages was already checksummed and didn't need to be verified
again.
But, those bits could go away via try_to_releasepage, and the end
result was bogus checksum failures on pages that never left the cache.
The new code validates checksums when the page is read. It is a little
tricky because metadata blocks can span pages and a single read may
end up going via multiple bios.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
d18a2c4475
Btrfs: Fix allocation profile init
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
611f0e00a2
Btrfs: Add support for duplicate blocks on a single spindle
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
8790d502e4
Btrfs: Add support for mirroring across drives
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
63b10fc487
Reorder the flags field in struct btrfs_header and record a flag on writeout
...
This allows detection of blocks that have already been written in the
running transaction so they can be recowed instead of modified again.
It is step one in trusting the transid field of the block pointers.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
0416008814
Create a btrfs backing dev info
...
This allows intelligent versions of unplug and congestion functions
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
593060d756
Btrfs: Implement raid0 when multiple devices are present
...
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
239b14b32d
Btrfs: Bring back mount -o ssd optimizations
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
0d81ba5dbe
Btrfs: Move device information into the super block so it can be scanned
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
e085def2c4
Btrfs: Make the FS tree the last objectid in the tree of tree roots
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:01 -04:00
Chris Mason
6324fbf334
Btrfs: Dynamic chunk and block group allocation
...
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
065631f6dc
Btrfs: checksum file data at bio submission time instead of during writepage
...
When we checkum file data during writepage, the checksumming is done one
page at a time, making it difficult to do bulk metadata modifications
to insert checksums for large ranges of the file at once.
This patch changes btrfs to checksum on a per-bio basis instead. The
bios are checksummed before they are handed off to the block layer, so
each bio is contiguous and only has pages from the same inode.
Checksumming on a bio basis allows us to insert and modify the file
checksum items in large groups. It also allows the checksumming to
be done more easily by async worker threads.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:00 -04:00
David Miller
df68b8a7ad
Btrfs: unaligned access fixes
...
Btrfs set/get macros lose type information needed to avoid
unaligned accesses on sparc64.
ere is a patch for the kernel bits which fixes most of the
unaligned accesses on sparc64.
btrfs_name_hash is modified to return the hash value instead
of getting a return location via a (potentially unaligned)
pointer.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:00 -04:00
Chris Mason
9069218d44
Btrfs: Fix i_blocks accounting
...
Now that delayed allocation accounting works, i_blocks accounting is changed
to only modify i_blocks when extents inserted or removed.
The fillattr call is changed to include the delayed allocation byte count
in the i_blocks result.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:00 -04:00
Chris Mason
47b0c4f8c7
Btrfs: Update magic
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:00 -04:00
Chris Mason
4529ba495c
Btrfs: Add data block hints to SSD mode too
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:00 -04:00
Chris Mason
6f568d35a0
Btrfs: mount -o max_inline=size to control the maximum inline extent size
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:00 -04:00
Chris Mason
9c58309d6c
Btrfs: Add inode item and backref in one insert, reducing cpu usage
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:00 -04:00
Chris Mason
85e21bac16
Btrfs: During deletes and truncate, remove many items at once from the tree
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:04:00 -04:00
Chris Mason
d1310b2e0c
Btrfs: Split the extent_map code into two parts
...
There is now extent_map for mapping offsets in the file to disk and
extent_io for state tracking, IO submission and extent_bufers.
The new extent_map code shifts from [start,end] pairs to [start,len], and
pushes the locking out into the caller. This allows a few performance
optimizations and is easier to use.
A number of extent_map usage bugs were fixed, mostly with failing
to remove extent_map entries when changing the file.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:59 -04:00
Chris Mason
5f56406aab
Btrfs: Fix hole insertion corner cases
...
There were a few places that could cause duplicate extent insertion,
this adjusts the code that creates holes to avoid it.
lookup_extent_map is changed to correctly return all of the extents in a
range, even when there are none matching at the start of the range.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:59 -04:00
Chris Mason
e18e4809b1
Btrfs: Add mount -o ssd, which includes optimizations for seek free storage
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:59 -04:00
Chris Mason
2da98f003f
Btrfs: Run igrab on data=ordered inodes to prevent deadlocks during writeout
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:59 -04:00
Chris Mason
cee36a03e8
Rework btrfs_drop_inode to avoid scheduling
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:59 -04:00
Chris Mason
61295eb866
Btrfs: Add drop inode func to avoid data=ordered deadlock
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:59 -04:00
Chris Mason
69a32ac517
Btrfs: Change magic string to reflect new format
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:59 -04:00
Yan
fdebe2bd70
Btrfs: Add readonly inode flag
...
This patch adds readonly inode flag support. A file with this flag
can't be modified, but can be deleted.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:59 -04:00
Chris Mason
21ad10cf3e
Btrfs: Add flush barriers on commit
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:59 -04:00
Yan
b98b6767a0
Btrfs: Add inode flags support
...
This patch adds NODATASUM & NODATACOW inode flags support.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:59 -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
4313b3994d
Btrfs: Reduce stack usage in the resizer, fix 32 bit compiles
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Chris Mason
8f662a76c6
Btrfs: Add readahead to the online shrinker, and a mount -o alloc_start= for testing
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -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
1832a6d5ee
Btrfs: Implement basic support for -ENOSPC
...
This is intended to prevent accidentally filling the drive. A determined
user can still make things oops.
It includes some accounting of the current bytes under delayed allocation,
but this will change as things get optimized
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Chris Mason
6da6abae02
Btrfs: Back port to 2.6.18-el kernels
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Chris Mason
c59f8951d4
Btrfs: Add mount option to enforce a max extent size
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Chris Mason
be20aa9dba
Btrfs: Add mount option to turn off data cow
...
A number of workloads do not require copy on write data or checksumming.
mount -o nodatasum to disable checksums and -o nodatacow to disable
both copy on write and checksumming.
In nodatacow mode, copy on write is still performed when a given extent
is under snapshot.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Chris Mason
b6cda9bcb4
Btrfs: Add mount -o nodatasum to turn of file data checksumming
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Chris Mason
f6dbff55d7
Btrfs: Reorder extent back refs to differentiate btree blocks from file data
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Chris Mason
3954401fa6
Btrfs: Add back pointers from the inode to the directory that references it
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Chris Mason
7bb86316c3
Btrfs: Add back pointers from extents to the btree or file referencing them
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Chris Mason
74493f7a59
Btrfs: Implement generation numbers in block pointers
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Chris Mason
87ee04eb0f
Btrfs: Add simple stripe size parameter
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Chris Mason
00f5c795fc
btrfs_drop_extents: make sure the item is getting smaller before truncate
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:58 -04:00
Yan
324ae4df00
Btrfs: Add block group pinned accounting back
...
This patch adds a helper function 'update_pinned_extents' to
extent-tree.c. The usage of the helper function is similar to
'update_block_group', the last parameter of the function indicates
pin vs unpin.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Josef Bacik
5103e947b9
xattr support for btrfs
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Chris Mason
e644d021e3
Fix recursive KM_USER1 usage in btrfs_realloc_node
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Chris Mason
f84a8b362d
Btrfs: Optimize allocations as we need to mix data and metadata into one group
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Chris Mason
179e29e488
Btrfs: Fix a number of inline extent problems that Yan Zheng reported.
...
The fixes do a number of things:
1) Most btrfs_drop_extent callers will try to leave the inline extents in
place. It can truncate bytes off the beginning of the inline extent if
required.
2) writepage can now update the inline extent, allowing mmap writes to
go directly into the inline extent.
3) btrfs_truncate_in_transaction truncates inline extents
4) extent_map.c fixed to not merge inline extent mappings and hole
mappings together
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Chris Mason
f578d4bd7e
Btrfs: Optimize csum insertion to create larger items when possible
...
This reduces the number of calls to btrfs_extend_item and greatly lowers
the cpu usage while writing large files.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Chris Mason
6d7231f7d3
Btrfs: Fix typo: owner is a 64 bit field
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Chris Mason
a6b6e75e09
Btrfs: Defrag only leaves, and only when the parent node has a single objectid
...
This allows us to defrag huge directories, but skip the expensive defrag
case in more common usage, where it does not help as much.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Chris Mason
19c00ddcc3
Btrfs: Add back metadata checksumming
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
0f82731fc5
Breakout BTRFS_SETGET_FUNCS into a separate C file, the inlines were too big.
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
810191ff30
Btrfs: extent_map optimizations to cut down on CPU usage
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
3326d1b07c
Btrfs: Allow tails larger than one page
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
14048ed0c4
Btrfs: Cache extent buffer mappings
...
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
1a5bc167f6
Btrfs: Change the remaining radix trees used by extent-tree.c to extent_map trees
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
96b5179d0d
Btrfs: Stop using radix trees for the block group cache
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
f510cfecfc
Btrfs: Fix extent_buffer and extent_state leaks
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
6d36dcd48f
Btrfs: Avoid memcpy where possible in extent_buffers
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
479965d66e
Btrfs: Optimizations for the extent_buffer code
...
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
Christoph Hellwig
34287aa360
Btrfs: use unlocked_ioctl
...
No reason to grab the BKL before calling into the btrfs ioctl code.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-14 10:22:47 -04:00
Chris Mason
5ce14bbcdd
Btrfs: Find and remove dead roots the first time a root is loaded.
...
Dead roots are trees left over after a crash, and they were either in the
process of being removed or were waiting to be removed when the box crashed.
Before, a search of the entire tree of root pointers was done on mount
looking for dead roots. Now, the search is done the first time we load
a root.
This makes mount faster when there are a large number of snapshots, and it
enables the block accounting code to properly update the block counts on
the latest root as old versions of the root are reaped after a crash.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-11 11:15:39 -04:00
Chris Mason
011410bd85
Btrfs: Add more synchronization before creating a snapshot
...
File data checksums are only done during writepage, so we have to make sure
all pages are written when the snapshot is taken. This also adds some
locking so that new writes don't race in and add new dirty pages.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 19:58:36 -04:00
Chris Mason
95e0528919
Btrfs: Use mount -o subvol to select the subvol directory instead of dev:
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-29 09:11:44 -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
Josef Bacik
15ee9bc7ed
Btrfs: delay commits during fsync to allow more writers
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-10 16:22:09 -04:00
Chris Mason
e9d0b13b5b
Btrfs: Btree defrag on the extent-mapping tree as well
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-10 14:06:19 -04:00
Chris Mason
26b8003f10
Btrfs: Replace extent tree preallocation code with some bit radix magic.
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-08 20:17:12 -04:00
Chris Mason
f4468e94c8
Btrfs: Let some locks go during defrag and snapshot dropping
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-08 10:08:58 -04:00
Chris Mason
6702ed490c
Btrfs: Add run time btree defrag, and an ioctl to force btree defrag
...
This adds two types of btree defrag, a run time form that tries to
defrag recently allocated blocks in the btree when they are still in ram,
and an ioctl that forces defrag of all btree blocks.
File data blocks are not defragged yet, but this can make a huge difference
in sequential btree reads.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-07 16:15:09 -04:00
Chris Mason
3c69faecb8
Btrfs: Fold some btree readahead routines into something more generic.
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-07 15:52:22 -04:00
Chris Mason
9f3a742736
Btrfs: Do snapshot deletion in smaller chunks.
...
Before, snapshot deletion was a single atomic unit. This caused considerable
lock contention and required an unbounded amount of space. Now,
the drop_progress field in the root item is used to indicate how far along
snapshot deletion is, and to resume where it left off.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-07 15:52:19 -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
4b52dff6d3
Btrfs: Fix super block updates during transaction commit
...
The super block written during commit was not consistent with the state of
the trees. This change adds an in-memory copy of the super so that we can
make sure to write out consistent data during a commit.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-26 10:06:50 -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
54aa1f4dfd
Btrfs: Audit callers and return codes to make sure -ENOSPC gets up the stack
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-22 14:16:25 -04:00
Chris Mason
11bd143fc8
Btrfs: Switch to libcrc32c to avoid problems with cryptomgr on highmem machines
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-22 14:16:24 -04:00
Chris Mason
9ebefb180b
Btrfs: patch queue: page_mkwrite
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-15 13:50:00 -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
39279cc3d2
Btrfs: split up super.c
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12 06:35:45 -04:00
Chris Mason
5276aedab0
Btrfs: fix oops after block group lookup
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-11 21:33:38 -04:00
Chris Mason
0cf6c62017
Btrfs: remove device tree
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-09 09:22:25 -04:00
Chris Mason
facda1e787
Btrfs: get forced transaction commits via workqueue
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-08 18:11:48 -04:00
Chris Mason
08607c1b18
Btrfs: add compat ioctl
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-08 15:33:54 -04:00
Chris Mason
fabb568183
Btrfs: d_type optimization
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-07 22:13:21 -04:00
Chris Mason
1e2677e000
Btrfs: block group switching
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-29 16:52:18 -04:00
Chris Mason
1de037a43e
Btrfs: fixup various fsx failures
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-29 15:17:08 -04:00
Chris Mason
3a68637562
Btrfs: sparse files!
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-24 13:35:57 -04:00
Chris Mason
e06afa839e
Btrfs: rename
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-23 15:44:28 -04:00
Chris Mason
f9f3c6b666
Btrfs: 2.6.21-git fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-21 14:05:12 -04:00
Chris Mason
de428b63b1
Btrfs: allocator optimizations, truncate readahead
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-18 13:28:27 -04:00
Chris Mason
509659cde5
Btrfs: switch to crc32c instead of sha256
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-10 12:36:17 -04:00
Chris Mason
e37c9e6921
Btrfs: many allocator fixes, pretty solid
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-09 20:13:14 -04:00
Chris Mason
3e1ad54fe2
Btrfs: allocator and tuning
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-07 20:03:49 -04:00
Chris Mason
be74417553
Btrfs: more allocator enhancements
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-06 10:15:01 -04:00
Chris Mason
be08c1b9f8
Btrfs: early metadata/data split
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-03 09:06:49 -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
31f3c99b73
Btrfs: allocator improvements, inode block groups
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-30 15:25:45 -04:00
Chris Mason
cd1bc4653d
Btrfs: more block allocator work
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-27 10:08:34 -04:00
Chris Mason
9078a3e1e4
Btrfs: start of block group code
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-26 16:46:15 -04:00
Chris Mason
f2458e1d8c
Btrfs: change around extent-tree prealloc
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-25 15:52:25 -04:00
Chris Mason
c62a1920ce
Btrfs: get rid of the extent_item type field
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-24 12:07:39 -04:00
Chris Mason
4d77567309
Btrfs: add owner and type fields to the extents aand block headers
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-20 20:23:12 -04:00
Chris Mason
e66f709b15
Btrfs: write barriers on commit, balance level before split
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-20 13:16:02 -04:00
Chris Mason
8fd17795b2
Btrfs: early fsync support
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-19 21:01:03 -04:00
Chris Mason
7e38180e20
Btrfs: directory inode index is back
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-19 15:36:27 -04:00
Chris Mason
236454dfff
Btrfs: many file_write fixes, inline data
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-19 13:37:44 -04:00
Chris Mason
a429e51371
Btrfs: working file_write, reorganized key flags
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-18 16:15:28 -04:00
Chris Mason
70b2befd0c
Btrfs: rework csums and extent item ordering
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-17 15:39:32 -04:00
Chris Mason
b18c668581
Btrfs: progress on file_write
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-17 13:26:50 -04:00
Chris Mason
6567e837df
Btrfs: early work to file_write in big extents
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-16 09:22:45 -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
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
0bd93ba022
Btrfs: early support for multiple devices
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-11 13:57:44 -04:00
Chris Mason
cac87faa09
Btrfs: use a dedicated inode num for root root dir
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-11 08:59:20 -04:00
Chris Mason
d0dbc6245c
Btrfs: drop owner and parentid
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 12:36:36 -04:00
Chris Mason
1b05da2ee6
Btrfs: drop the inode map tree
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 12:13:09 -04:00
Chris Mason
c5739bba52
Btrfs: snapshot progress
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 09:27:04 -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
d6e4a428eb
Btrfs: start of support for many FS volumes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-06 15:37:36 -04:00
Chris Mason
5be6f7f174
Btrfs: dirindex optimizations
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-05 13:35:25 -04:00
Chris Mason
7fcde0e329
Btrfs: finish off inode indexing in dirs, add overflows
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-05 12:13:21 -04:00
Chris Mason
5f26f772e5
Btrfs: more inode indexed directory work
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-05 10:38:44 -04:00
Chris Mason
bae45de03c
Btrfs: add dir inode index
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-04 21:22:22 -04:00
Chris Mason
b1a4d96509
Btrfs: tweak the inode-map and free extent search starts on cold mount
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-04 15:27:52 -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
d602557953
Btrfs: corruption hunt continues
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-30 14:27:56 -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
87cbda5c1f
Btrfs: sha256 csums on metadata
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-28 19:44: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
9773a78868
Btrfs: byte offsets for file keys
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 11:26:26 -04:00
Chris Mason
71951f35a6
Btrfs: add generation field to file extent
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 09:16:29 -04:00
Chris Mason
9a6f11ed8f
Btrfs: split out level field in struct header
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 09:06:38 -04:00
Chris Mason
6407bf6d7c
Btrfs: reference counts on data extents
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 06:33:00 -04:00
Chris Mason
dee26a9f7a
btrfs_get_block, file read/write
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-26 16:00:06 -04:00
Chris Mason
8ef97622ca
Btrfs: add a radix back bit tree
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-26 10:15:30 -04:00
Chris Mason
d561c025ee
Btrfs: very minimal locking
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-23 19:47:49 -04:00
Chris Mason
7f5c15160e
Add generation number to btrfs_header, readdir fixes, hash collision fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-23 15:56:19 -04:00
Chris Mason
d571976292
btrfs_create, btrfs_write_super, btrfs_sync_fs
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-23 10:01:08 -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
1261ec42b3
Btrfs: Better block record keeping, real mkfs
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-20 20:35:03 -04:00
Chris Mason
293ffd5fd3
Btrfs: change dir-test to insert inode_items
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-20 15:57:25 -04:00
Chris Mason
9f5fae2fe6
Btrfs: Add inode map, and the start of file extent items
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-20 14:38:32 -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
88fd146c27
Btrfs: pin freed blocks from the FS tree too
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-16 08:56:18 -04:00
Chris Mason
a8a2ee0c60
Btrfs: add a name_len to dir items, reorder key
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-16 08:46:49 -04:00
Chris Mason
1e1d27017c
Btrfs: add inode item
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-15 19:03:33 -04:00
Chris Mason
1d4f6404de
Btrfs: directory testing code and dir item fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-15 15:18:43 -04:00
Chris Mason
62e2749e03
Btrfs: Use a chunk of the key flags to record the item type.
...
Add (untested and simple) directory item code
Fix comp_keys to use the new key ordering
Add btrfs_insert_empty_item
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-15 12:56:47 -04:00
Chris Mason
a1516c8921
Btrfs: reorder key offset and flags
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-14 14:26:53 -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
4beb1b8b75
Btrfs: add leaf data casting helper
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-14 10:31:29 -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
cf27e1eec0
Btrfs: struct extent_item endian
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-13 09:49:06 -04:00
Chris Mason
1d4f8a0c1e
Btrfs: node->blockptrs endian fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-13 09:28:32 -04:00
Chris Mason
0783fcfc4d
Btrfs: struct item endian fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-12 20:12:07 -04:00
Chris Mason
e2fa7227cd
Btrfs: struct key endian fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-12 16:22:34 -04:00
Chris Mason
bb492bb0a5
Btrfs: Add sparse endian annotations to struct header
...
rename struct header to btrfs_header
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-12 12:29:44 -04:00
Chris Mason
7518a238ea
Btrfs: get/set for struct header fields
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-12 12:01:18 -04:00
Chris Mason
0579da4280
Btrfs: Fixup last found extent caching
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-07 16:15:30 -05: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
02217ed299
Btrfs: early reference counting
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-02 16:08:05 -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
fec577fb7f
Btrfs: Add fsx-style randomized tree tester
...
Add debug-tree command to print the tree
Add extent-tree.c to the repo
Comment ctree.h
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-26 10:40:21 -05:00
Chris Mason
5de08d7d50
Btrfs: Break up ctree.c a little
...
Extent fixes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-02-24 06:24:44 -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