Yan
18f16f7ba6
Btrfs: Fix for insert_inline_extent to handle offset != 0
...
This modifies inline extent size calculation, so that
insert_inline_extent can handle the case that parameter 'offset' is
not zero; it also a few codes to zero uninitialized area in inline
extent.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Chris Mason
cc0c553847
Btrfs: Fix split_leaf to detect when it is extending an item
...
When making room for a new item, it is ok to create an empty leaf, but
when making room to extend an item, split_leaf needs to make sure it
keeps the item we're extending in the path and make sure we don't end up
with an empty leaf.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Yan
65555a06b4
Btrfs: Off by one fixes in extent_map.c
...
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
5ee78ac70f
Btrfs: Fix split_leaf to avoid incorrect double splits
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Chris Mason
ff190c0c00
Btrfs: Avoid recursive KM_USER1 mappings in copy_extent_buffer
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Chris Mason
3685f79165
Btrfs: CPU usage optimizations in push and the extent_map code
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Chris Mason
59d169e2b3
Btrfs: Fix read/write_extent_buffer to use KM_USER1 instead of KM_USER0
...
This avoids recursive use of KM_USER0 during btrfs_file_write
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Jens Axboe
b4a2a0edfd
Btrfs: sysfs compile fixup
...
Just use kobject_set_name(), that works in all kernels (I think...).
Kernels newer than 2.6.23 currently fail with:
/home/axboe/git/btrfs/btrfs-unstable/sysfs.c:188: error: unknown field
'name' specified in initializer
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Jens Axboe
bbf0d0062d
Btrfs: KM_IRQ0 usage in end_io handling
...
endio handling is typically called with interrupts disabled, but can
also be called with it enabled. So save interrupts before using KM_IRQ0
to be completely safe.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Jens Axboe
0a2118dfd4
Btrfs: Fix bi_end_io() functions on > 2.6.23 kernels
...
It now returns void and it is never called for partial completions, so
the bio->bi_size check must go.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Jens Axboe
ae2f5411c4
btrfs: 32-bit type problems
...
An assorted set of casts to get rid of the warnings on 32-bit archs.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:57 -04:00
Yan Zheng
44b36eb20b
Btrfs: Properly setup root key while reading the root
...
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
7936ca3883
Btrfs: Default to 8k max packed tails
...
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
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
cf786e79e3
Btrfs: Defrag: only walk into nodes with the defrag bit set
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
304fced668
Btrfs: balance_dirty_pages_ratelimited is causing problems, use nr == 1 always
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
0f1ebbd159
Btrfs: Large block related defrag optimizations
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -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
4dc119046d
Btrfs: Add an extent buffer LRU to reduce radix tree hits
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
e19caa5f0e
Btrfs: Fix allocation routines to avoid intermixing data and metadata allocations
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -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
09e71a3263
Btrfs: Use an array of pages in the extent buffers to reduce the cost of find_get_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
ae5252bd51
Btrfs: Go back to kmaps instead of page_address in extent_buffers
...
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
Chris Mason
50b78c24d5
btrfs_get_extent should treat inline extents as though they hold a whole block
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Christoph Hellwig
b3cfa35a49
Btrfs: factor page private preparations into a helper
...
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Yan
8e1cd76664
Btrfs: Fix double free and off by one in inode.c
...
The first change removes potential double free, the second fix a off
by one error.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Yan
bab9fb035f
Btrfs: truncate: don't update inode->i_blocks when extent is a hole
...
I think check whether extent is a hole before update 'inode->i_blocks'
is unconditional required. (original codes check it only when
del_item isn't equal to 0)
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Yan
23223584e4
create btrfs_path slab with the correct size
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Yan
a61721d5b7
fix found_type decrement in btrfs_truncate_in_trans
...
found_type has already been decreased by codes above the change, I
think decrease it by one again doesn't make sense.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25 11:03:56 -04:00
Chris Mason
cf67582bb2
Btrfs: Fix duplicate ENOSPC checks in find_free_extent
...
find_free_extent would fail to wrap around to the start of the drive because
it was doing the enospc case checking twice in some cases, causing it
to return -ENOSPC early.
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
Yan
7d7d6068be
Btrfs: Fix cache_block_group to catch holes at the start of the group
...
Cache block group was overly complex and missed free blocks at the very start
of the group. This patch simplifies things significantly.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-14 16:15:28 -04:00
Yan
6af858b24c
Btrfs: Fix off by one error in dirty_and_release_pages
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-14 10:23:29 -04:00
Christoph Hellwig
d03581f434
split up btrfs_ioctl
...
Add a helper per ioctl function to make the code more readable.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-14 10:22:57 -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
Jan Engelhardt
432eba0882
Btrfs: Simplify makefile
...
Single-colons will do here.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-14 10:22:19 -04:00
Chris Mason
84a5d5eefd
Btrfs: add modules_install target
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-14 09:43:53 -04:00
Chris Mason
93a6925ec1
Btrfs: Fix extra link count dec in rename
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-14 09:42:31 -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
Christoph Hellwig
0e2752a72c
Btrfs: [PATCH] extent_map: add writepage_end_io hook
...
XFS updates the ondisk inode size only after the data I/O has finished,
so it needs a hook when the writepage end_bio handler has finished.
Might not be worth applying as-is as the per-page callback is very
ineffcient. What XFS really wants is a callback when writeout of a
whole extent has completed. This delayed i_size updates scheme might
be worthwile for btrfs aswell, btw.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:02:33 -04:00
Christoph Hellwig
b06355f0fe
Btrfs: [PATCH] extent_map: make the writepage_io hook optional
...
The writepage_io is not mandatory, e.g. my port of xfs to the extent_map
code does not have one for now. So handle a NULL pointer gracefully
here.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:02:32 -04:00
Christoph Hellwig
d396c6f554
Btrfs: [PATCH] extent_map: provide generic bmap
...
generic_bmap is completely trivial, while the extent to bh mapping in
btrfs is rather complex. So provide a extent_bmap instead that takes
a get_extent callback and can be used by filesystem using the extent_map
code.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:02:30 -04:00
Christoph Hellwig
90f1c19a9f
Btrfs: [PATCH] extent_map: fix locking for bio completion
...
The bio completion handlers can be run in any context, e.g. when using
the old ide driver they run in hardirq context with irqs disabled so
lockdep rightfully warns about using write_lock_irq useage in these
handlers.
This patch switches clear_extent_bit and set_extent_bit to
write_lock_irqsave to fix this problem.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:02:27 -04:00
Christoph Hellwig
9433063bcb
[PATCH] btrfs: fix printk format warning
...
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:02:22 -04:00
Chris Mason
a8c450b211
Btrfs: Reorder tests in set_extent_bit to properly find holes
...
Yan Zheng noticed that set_extent_bit was exiting too early when there
was a hole in the map. The fix is to reorder the tests to check for the
hole first.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-09-10 20:00:27 -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
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
Chris Mason
8e21528f87
Btrfs: remove extra drop_extent_cache call
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-30 12:16:51 -04:00
Chris Mason
2bf5a725a3
Btrfs: fsx delalloc fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-30 11:54:02 -04:00
Chris Mason
07157aacb1
Btrfs: Add file data csums back in via hooks in the extent map code
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-30 08:50:51 -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
Yan
e9fe395e47
Btrfs: Fix oopsen in extent_tree.c during enospc
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-29 09:11:44 -04:00
Yan
4b82d6e4a5
Btrfs: Add mount into directory support
...
Modified form of original patch from Christoph Hellwig to make btrfs
mount into the default subvolume by default.
mount /dev/somedevice:subvolumename to get other subvolumes or
mount /dev/somedevice:. to get the root
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-29 09:11:44 -04:00
Yan
1b4ab1bb4b
Btrfs: Fix mknod to properly send rdev info back to disk
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-29 09:11:44 -04:00
Yan
252c38f069
Btrfs: ctree.c cleanups
...
Fixup a few buffer_head release errors, and fix an off by one in
balance_node_right.
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
b888db2bd7
Btrfs: Add delayed allocation to the extent based page tree code
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-27 16:49:44 -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
83df7c1d8b
Btrfs: Make sure to cow the root during a snapshot
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-27 16:49:44 -04:00
Chris Mason
2cc58cf24f
Btrfs: Do more extensive readahead during tree searches
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-27 16:49:44 -04:00
Yan
3202061128
fix block readahead in btrfs_next_leaf
...
Send the correct slot down to reada_for_search
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-27 15:17:54 -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
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
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
409eb95d7f
Btrfs: Further reduce the concurrency penalty of defrag and drop_snapshot
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-08-08 20:17:12 -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
Joel Becker
8578f0f1fd
Btrfs: cleaner make clean
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-07-25 14:04:51 -04:00
Chris Mason
92fee66d49
Btrfs: deal with api changes in 2.6.23-rc1
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-07-25 12:31:35 -04:00
Josef Bacik
618e21d595
Btrfs: Implement mknod
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-07-11 10:18:17 -04:00
Aneesh
a1f396304f
Btrfs: Some code cleanups
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-07-11 10:03:27 -04:00
Zach Brown
ec6b910fb3
Btrfs: trivial include fixups
...
Almost none of the files including module.h need to do so,
remove them.
Include sched.h in extent-tree.c to silence a warning about cond_resched()
being undeclared.
Signed-off-by: Zach Brown <zach.brown@oracle.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-07-11 10:00: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
f2654de42a
Btrfs: Allow find_free_extent callers to pass in an exclusion range
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-26 12:20:46 -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
79c44584ea
Btrfs: Fix mtime and ctime updates on parent dirs
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-25 10:09:33 -04:00
Chris Mason
22bb92f376
Btrfs: Documentation update
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-22 14:49:31 -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
e011599b0f
Btrfs: reada while dropping snapshots
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-19 16:23:05 -04:00
Chris Mason
85e55b13e4
Btrfs: cache the extent tree preallocation
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-19 15:50:51 -04:00
Chris Mason
8c2383c3dd
Subject: Rework btrfs_file_write to only allocate while page locks are held
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-18 09:57:58 -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
Aneesh
f1ace244c8
btrfs: Code cleanup
...
Attaching below is some of the code cleanups that i came across while
reading the code.
a) alloc_path already calls init_path.
b) Mention that btrfs_inode is the in memory copy.Ext4 have ext4_inode_info as
the in memory copy ext4_inode as the disk copy
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-13 16:18:26 -04:00
Chris Mason
340887809d
Btrfs: i386 fixes from axboe
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12 11:36:58 -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
8a712645c3
Btrfs: no slashes in subvolume names
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12 08:21:35 -04:00
Chris Mason
5af3981c18
Btrfs: printk fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12 07:50:13 -04:00
Chris Mason
84f54cfa78
Btrfs: 64 bit div fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12 07:43:08 -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
ad693af684
Btrfs: reap dead roots right after commit
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-09 08:19:57 -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
fbdc762b4e
Btrfs: use a separate flag for search_start vs a hint in find_free_extent
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-30 10:22:12 -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
2b8d99a723
Btrfs: symlinks and hard links
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-24 08:34:10 -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
098f59c251
Btrfs: patch queue: fix corruption when splitting large items
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-11 11:33:21 -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
8d7be552a7
Btrfs: fix check_node and check_leaf to use less cpu
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-10 11:24:42 -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
090d18753c
Btrfs: directory readahead
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-01 08:53:32 -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
308535a05e
Btrfs: prealloc more blocks for the extent map
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-28 15:17:08 -04:00
Chris Mason
7c4452b9a6
Btrfs: smarter transaction writeback
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-28 09:29:35 -04:00
Chris Mason
06a2f9fa4c
Btrfs: try to drop dead cow pages from ram
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-28 08:48:10 -04:00
Chris Mason
28b8bb9e00
Btrfs: allocator tweaks
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-27 11:42:05 -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
f68cad0f9e
Btrfs: fixup dirty_inode related deadlocks
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-24 12:44:26 -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
b51338628f
Btrfs: add dirty_inode call
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-24 11:52:22 -04:00
Chris Mason
5e82849e63
Btrfs: new subvolume oops fix
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-23 19:10:49 -04:00
Chris Mason
5d0c3e60fe
Btrfs: fix extent owner/type setting on extent tree blocks
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-23 17:01:05 -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
33ade1f826
Btrfs: node balance optimizations
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-20 13:48:57 -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
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
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
2d13d8d065
Btrfs: detect duplicate subvol names
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 20:07:20 -04:00
Chris Mason
2619ba1f0f
Btrfs: subvolumes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 16:58:11 -04:00
Chris Mason
2932f3ec94
Btrfs: when forced to cow for file_write, get the page uptodate first
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 14:22:02 -04:00
Chris Mason
79b2cb1fa6
Btrfs: only cow in get_block when create==1
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 13:51:41 -04:00
Chris Mason
48ddc6f44b
Btrfs: cow file extents before writing
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10 13:20:21 -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
3eb0314dc1
Btrfs: uuids
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-05 14:28:50 -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
e8f05c4508
Btrfs: disable inline data code for now
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-04 14:30:09 -04:00
Chris Mason
d4dbff953e
Btrfs: support for items bigger than 1/2 the blocksize
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-04 14:08:15 -04:00
Chris Mason
df24a2b9c9
Btrfs: early inline file data code
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-04 09:36:31 -04:00
Chris Mason
9d64272cd3
Btrfs: don't wait on uptodate buffers on read
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-03 11:43:19 -04:00
Chris Mason
2da566edd8
Btrfs: csum_verify_file_block locking fix
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-02 15:43:21 -04:00
Chris Mason
7cfcc17e7f
Btrfs: corruptions fixed
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-02 14:53:59 -04:00
Chris Mason
5caf2a0029
Btrfs: dynamic allocation of path struct
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-02 11:20:42 -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
22b0ebda6c
Btrfs: hunting slab corruption
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-30 08:47:31 -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
75dfe3960e
btrfs_file_write -- first pass
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-29 11:56:46 -04:00
Chris Mason
30ae846748
Btrfs: btree address space fixes
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-29 09:59:15 -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
5f443fd280
btrfs_rmdir
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 13:42:32 -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
f4b9aa8d3b
btrfs_truncate
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27 11:05:53 -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
4730a4bc5b
btrfs_dirty_inode
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-26 12:00:39 -04:00
Chris Mason
b52d63fece
Btrfs: TODO update
...
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-26 11:01:09 -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