summaryrefslogtreecommitdiff
path: root/fs/btrfs/file-item.c
AgeCommit message (Collapse)AuthorFilesLines
2008-09-25Btrfs: Clone file data ioctlSage Weil1-6/+6
Add a new ioctl to clone file data Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25Btrfs: Write bio checksumming outside the FS mutexChris Mason1-14/+32
This significantly improves streaming write performance by allowing concurrency in the data checksumming. Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25Btrfs: Use KM_USERN instead of KM_IRQ during data summingChris Mason1-5/+5
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25Btrfs: Make sure bio pages are adjacent during bulk csummingChris Mason1-2/+4
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25Btrfs: While doing checksums on bios, cache the extent_buffer mappingChris Mason1-3/+33
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25Btrfs: checksum file data at bio submission time instead of during writepageChris Mason1-11/+39
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-25Btrfs: Add some extra debugging around file data checksum failuresChris Mason1-0/+4
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25Btrfs: Fix a number of inline extent problems that Yan Zheng reported.Chris Mason1-1/+1
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-25Minor fix for btrfs_csum_file_block.Yan1-6/+4
Execution should goto label 'insert' when 'btrfs_next_leaf' return a non-zero value, otherwise the parameter 'slot' for 'btrfs_item_key_to_cpu' may be out of bounds. The original codes jump to label 'insert' only when 'btrfs_next_leaf' return a negative value. Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25Btrfs: Optimize csum insertion to create larger items when possibleChris Mason1-1/+36
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-25Btrfs: Add back file data checksummingChris Mason1-8/+9
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25Btrfs: Allow tree blocks larger than the page sizeChris Mason1-5/+5
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2008-09-25Btrfs: Create extent_buffer interface for large blocksizesChris Mason1-32/+31
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-07-11Btrfs: trivial include fixupsZach Brown1-1/+0
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-06-22Btrfs: Audit callers and return codes to make sure -ENOSPC gets up the stackChris Mason1-40/+6
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-18Subject: Rework btrfs_file_write to only allocate while page locks are heldChris Mason1-1/+0
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-15Btrfs: patch queue: page_mkwriteChris Mason1-1/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-14btrfs: Code cleanupAneesh1-2/+0
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-12Btrfs: add GPLv2Chris Mason1-0/+18
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12Btrfs: printk fixesChris Mason1-5/+0
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-06-12Btrfs: 64 bit div fixesChris Mason1-1/+2
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-29Btrfs: fixup various fsx failuresChris Mason1-0/+30
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-24Btrfs: sparse files!Chris Mason1-5/+6
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-05-10Btrfs: switch to crc32c instead of sha256Chris Mason1-16/+19
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-19Btrfs: many file_write fixes, inline dataChris Mason1-0/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-19Btrfs: working file_write, reorganized key flagsChris Mason1-19/+47
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-17Btrfs: rework csums and extent item orderingChris Mason1-24/+2
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-17Btrfs: progress on file_writeChris Mason1-20/+41
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-16Btrfs: early work to file_write in big extentsChris Mason1-7/+104
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-10Btrfs: drop owner and parentidChris Mason1-1/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-02Btrfs: csum_verify_file_block locking fixChris Mason1-0/+2
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-04-02Btrfs: dynamic allocation of path structChris Mason1-17/+26
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-30Btrfs: corruption hunt continuesChris Mason1-2/+2
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-29Btrfs: verify csums on readChris Mason1-0/+60
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27Btrfs: byte offsets for file keysChris Mason1-2/+3
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27Btrfs: add generation field to file extentChris Mason1-0/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-27btrfs_get_block, file read/writeChris Mason1-2/+50
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-21Btrfs: initial move to kernel module landChris Mason1-5/+1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-20Btrfs: Add inode map, and the start of file extent itemsChris Mason1-0/+6
Signed-off-by: Chris Mason <chris.mason@oracle.com>
2007-03-16Btrfs: add inode itemChris Mason1-0/+7
Signed-off-by: Chris Mason <chris.mason@oracle.com>