summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* superblock duplicationYan Zheng2008-12-05
| | | | | | | | | | This patch updates btrfs-progs for superblock duplication. Note: I didn't make this patch as complete as the one for kernel since updating the converter requires changing the code again. Thank you, Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
* Btrfs: move data checksumming into a dedicated treeChris Mason2008-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Btrfs stores checksums for each data block. Until now, they have been stored in the subvolume trees, indexed by the inode that is referencing the data block. This means that when we read the inode, we've probably read in at least some checksums as well. But, this has a few problems: * The checksums are indexed by logical offset in the file. When compression is on, this means we have to do the expensive checksumming on the uncompressed data. It would be faster if we could checksum the compressed data instead. * If we implement encryption, we'll be checksumming the plain text and storing that on disk. This is significantly less secure. * For either compression or encryption, we have to get the plain text back before we can verify the checksum as correct. This makes the raid layer balancing and extent moving much more expensive. * It makes the front end caching code more complex, as we have touch the subvolume and inodes as we cache extents. * There is potentitally one copy of the checksum in each subvolume referencing an extent. The solution used here is to store the extent checksums in a dedicated tree. This allows us to index the checksums by phyiscal extent start and length. It means: * The checksum is against the data stored on disk, after any compression or encryption is done. * The checksum is stored in a central location, and can be verified without following back references, or reading inodes. This makes compression significantly faster by reducing the amount of data that needs to be checksummed. It will also allow much faster raid management code in general. The checksums are indexed by a key with a fixed objectid (a magic value in ctree.h) and offset set to the starting byte of the extent. This allows us to copy the checksum items into the fsync log tree directly (or any other tree), without having to invent a second format for them. Signed-off-by: Chris Mason <chris.mason@oracle.com>
* Rev the disk format for the compat code and the csum selectionChris Mason2008-12-02
| | | | | Signed-off-by: Chris Mason <chris.mason@oracle.com>
* btrfs-progs: support for different csum algorithimsJosef Bacik2008-12-02
| | | | | | | | | | | | | This is the btrfs-progs version of the patch to add the ability to have different csum algorithims. Note I didn't change the image maker since it seemed a bit more complicated than just changing some stuff around so I will let Yan take care of that. Everything else was converted and for now a mkfs just sets the type to be BTRFS_CSUM_TYPE_CRC32. Signed-off-by: Josef Bacik <jbacik@redhat.com>
* btrfs-progs: add support for compat flagsJosef Bacik2008-12-02
| | | | | | | | This patch updates btrfs-progs with the disk format changes for the compatability flags. Signed-off-by: Josef Bacik <jbacik@redhat.com>
* Fix image tool compile warningsyanhai zhu2008-12-02
|
* Btrfs image toolYan Zheng2008-11-20
| | | | | | | | | This patch adds btrfs image tool. The image tool is a debugging tool that creates/restores btrfs metadump image. Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
* Update the super magic string to match the seed and root format changesChris Mason2008-11-18
|
* Add disk format requirements for subvol backward and forward refsChris Mason2008-11-18
|
* Modify the subvol and snapshot creation ioctls to work anywhere in the treeChris Mason2008-11-18
| | | | | | | | | | | | | | | | | | | | | | | | This changes the snapshot and subvol ioctl API and command lines so that new snapshots and subvols can be created anywhere. Subvolume creation hasn't changed much: btrfsctl -S subvol_name directory This creates a new subvolume under 'directory' Snapshot creation looks the same, but is actually different: btrfsctl -s full_path_to_new_snapshot file_or_dir For example: btrfsctl -s /mnt/new_snap /mnt/subvol Will create a new snapshot named new_snap under /mnt of the root found in /mnt/subvol. It always snapshots the entire root regardless of which file or directory inside the root you give it. Signed-off-by: Chris Mason <chris.mason@oracle.com>
* update btrfs-progs for seed device supportYan Zheng2008-11-18
| | | | | | | | | | | | This patch does the following: 1) Update device management code to match the kernel code. 2) Allocator fixes. 3) Add a program called btrfstune to set/clear the SEEDING super block flags.
* Add fallocate support v2Yan Zheng2008-10-31
| | | | | | | This patch updates btrfs-progs for fallocate support. Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
* Avoid tree of tree root cow when committing a clean FSChris Mason2008-10-30
| | | | | | | | | | | | | The root node generation number code made commit_tree_root look like the kernel code. It forces a cow of the tree of tree roots even when the FS hasn't changed. This causes errors during fsck and other readonly operations. This adds a check to see if commit_tree_root is going to trigger writes to the tree of tree roots, and bails if none are pending. Signed-off-by: Chris Mason <chris.mason@oracle.com>
* Rev the disk format for compression and root pointer generation fieldsChris Mason2008-10-29
| | | | | Signed-off-by: Chris Mason <chris.mason@oracle.com>
* Add root tree pointer transaction idsYan Zheng2008-10-29
| | | | | | | | | | This patch adds transaction IDs to root tree pointers. Transaction IDs in tree pointers are compared with the generation numbers in block headers when reading root blocks of trees. This can detect some types of IO errors. Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
* Add disk format elements for compressionChris Mason2008-10-29
| | | | | Signed-off-by: Chris Mason <chris.mason@oracle.com>
* Rev the disk format for the new back reference formatChris Mason2008-10-09
| | | | | Signed-off-by: Chris Mason <chris.mason@oracle.com>
* Count space allocated to file in bytesYan Zheng2008-10-09
| | | | | | | | This patch updates btrfs-progs for counting space allocated to file in bytes. Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
* Remove offset field from struct btrfs_extent_refYan Zheng2008-10-09
| | | | | | | | | | | | | | The offset field in struct btrfs_extent_ref records the position inside file that file extent is referenced by. In the new back reference system, tree leaves holding reference to file extent are recorded explicitly. We can quickly scan these tree leaves, so the offset field is not required. This patch also makes the back reference system check the objectid when extents are being deleted Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
* update mkfs.btrfs for the new space balancing codeZheng Yan2008-09-26
| | | | | | | The new space balancing code needs a subvol to store the temporary inode for data extent relocation. Signed-off-by: Chris Mason <chris.mason@oracle.com>
* Full back reference supportZheng Yan2008-09-23
| | | | | | | | This patch makes the back reference system to explicit record the location of parent node for all types of extents. The location of parent node is placed into the offset field of backref key. Every time a tree block is balanced, the back references for the affected lower level extents are updated.
* Disk format changes required for write ahead tree logChris Mason2008-09-05
|
* Rev the disk formatChris Mason2008-08-21
|
* Switch btrfs_name_hash() to crc32cDavid Woodhouse2008-08-20
| | | | | Date: Tue, 19 Aug 2008 19:21:22 +0100 Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* Use git for version number tooDavid Woodhouse2008-08-20
| | | | | Date: Tue, 19 Aug 2008 18:57:17 +0100 Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
* fix btrfs-progs version scriptEric Sandeen2008-08-06
| | | | | | | | btrfs-progs-0.16.tar.bz2 seems to be distributed w/o an .hg, which make the version.sh script go bonk. Signed-off-by: Eric Sandeen <sandeen@redhat.com> ---
* Added tag v0.16 for changeset 2b26e4f8c71eChris Mason2008-08-04
|
* Update version.sh to v0.16Chris Mason2008-08-04
|
* btrfs-convert: Iterate correctly using libext2fs functionsRadoslaw Szkodzinski2008-07-30
| | | | | | This patch corrects open-coded inode_map iteration, which happens to be illegal in new libext2fs due to inode_map being private, causing warning, which becomes a compile error.
* Cleanup btrfsctl help messageemail.ahmedkamal@googlemail.com2008-07-30
| | | | | | | Many options were not mentioned in the usage message, fix that and cleaning up the brackets Signed-Off-By: Ahmed Kamal <email.ahmedkamal@googlemail.com>
* Fix: btrfsctl arguments handlingAhmed2008-07-30
| | | | | | btrfsctl -A in the current -unstable branch, does not result in the error message designated for it, namely "-A requires an arg\n"
* btrfs-convert new dir index supportYan2008-07-30
| | | | This patch updates btrfs-convert for the new dir index format.
* btrfs-progs: add orphan support to print-treeJosef Bacik2008-07-30
| | | | | This adds orphan support to print-tree so when debug_tree hits an orphan item it will print out "orphan item" under it so you know what it is
* Rev the disk formatChris Mason2008-07-24
|
* btrfs-progs new dir index supportJosef Bacik2008-07-24
|
* Print the version string in a few programsChris Mason2008-07-24
|
* Add version stringsChris Mason2008-07-23
|
* Add .hgignore file to ignore verison.hChris Mason2008-07-23
|
* Add sync and transaction ioctl defsChris Mason2008-06-10
| | | | | | | | | btrfsctl -c forces a single FS sync The transaction ioctls are unsafe for general use because they can lead to deadlocks if the application is not very careful. But, ceph is experimenting with btrfs as a backing store, and these ioctls are required for testing.
* btrfsctl: print usage when called with bad argsLinda Knippers2008-06-09
|
* Added tag v0.15 for changeset e6571e2ce0c8Chris Mason2008-05-29
|
* Verify parent generation number on btree readsChris Mason2008-05-13
|
* Pass down the expected generation number when reading tree blocksChris Mason2008-05-12
|
* Fix the pretty print code for num_bytes == 0Chris Mason2008-05-12
|
* Add a readonly flag open_ctree to force RO opensChris Mason2008-05-05
|
* bcp updates for single file copiesChris Mason2008-05-02
|
* Add bcp to test the clone file ioctlChris Mason2008-05-02
|
* Fix compiler warning in volumes.cChris Mason2008-05-02
|
* Add the clone ioctl numberChris Mason2008-05-02
|
* Fix uninitialized variables, and use -O so gcc starts checking for themChris Mason2008-05-01
| | | | | | | | Gcc only sends warnings for uninitialized variables when you compile with -O, and there were a couple of bugs sprinkled in the code. The biggest was the alloc_start variable for mkfs, which can cause strange things to happen. (thanks to Gabor Micsko for helping to find this)