-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
56 changed files
with
34,936 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
Install Instructions | ||
|
||
Btrfs puts snapshots and subvolumes into the root directory of the FS. This | ||
directory can only be changed by btrfsctl right now, and normal filesystem | ||
operations do not work on it. The default subvolume is called 'default', | ||
and you can create files and directories in mount_point/default | ||
|
||
Btrfs uses libcrc32c in the kernel for file and metadata checksums. You need | ||
to compile the kernel with: | ||
|
||
CONFIG_LIBCRC32C=m | ||
|
||
libcrc32c can be static as well. Once your kernel is setup, typing make in the | ||
btrfs module sources will build against the running kernel. When the build is | ||
complete: | ||
|
||
modprobe libcrc32c | ||
insmod btrfs.ko | ||
|
||
The Btrfs utility programs require libuuid to build. This can be found | ||
in the e2fsprogs sources, and is usually available as libuuid or | ||
e2fsprogs-devel from various distros. | ||
|
||
Building the utilities is just make ; make install. The programs go | ||
into /usr/local/bin. The commands available are: | ||
|
||
mkfs.btrfs: create a filesystem | ||
|
||
btrfsctl: control program to create snapshots and subvolumes: | ||
|
||
mount /dev/sda2 /mnt | ||
btrfsctl -s new_subvol_name /mnt | ||
btrfsctl -s snapshot_of_default /mnt/default | ||
btrfsctl -s snapshot_of_new_subvol /mnt/new_subvol_name | ||
btrfsctl -s snapshot_of_a_snapshot /mnt/snapshot_of_new_subvol | ||
ls /mnt | ||
default snapshot_of_a_snapshot snapshot_of_new_subvol | ||
new_subvol_name snapshot_of_default | ||
|
||
Snapshots and subvolumes cannot be deleted right now, but you can | ||
rm -rf all the files and directories inside them. | ||
|
||
btrfsck: do a limited check of the FS extent trees.</li> | ||
|
||
debug-tree: print all of the FS metadata in text form. Example: | ||
|
||
debug-tree /dev/sda2 >& big_output_file | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
ifneq ($(KERNELRELEASE),) | ||
# kbuild part of makefile | ||
|
||
obj-m := btrfs.o | ||
btrfs-y := super.o ctree.o extent-tree.o print-tree.o root-tree.o dir-item.o \ | ||
file-item.o inode-item.o inode-map.o disk-io.o \ | ||
transaction.o bit-radix.o inode.o file.o tree-defrag.o \ | ||
extent_map.o sysfs.o struct-funcs.o xattr.o ordered-data.o \ | ||
extent_io.o volumes.o async-thread.o ioctl.o locking.o orphan.o \ | ||
ref-cache.o export.o tree-log.o acl.o free-space-cache.o | ||
else | ||
|
||
# Normal Makefile | ||
|
||
KERNELDIR := /lib/modules/`uname -r`/build | ||
all: version | ||
$(MAKE) -C $(KERNELDIR) M=`pwd` modules | ||
|
||
version: | ||
bash version.sh | ||
|
||
modules_install: | ||
$(MAKE) -C $(KERNELDIR) M=`pwd` modules_install | ||
clean: | ||
$(MAKE) -C $(KERNELDIR) M=`pwd` clean | ||
|
||
tester: | ||
$(MAKE) -C $(KERNELDIR) M=`pwd` tree-defrag.o transaction.o sysfs.o super.o root-tree.o inode-map.o inode-item.o inode.o file-item.o file.o extent_map.o disk-io.o ctree.o dir-item.o extent-tree.o | ||
endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
* cleanup, add more error checking, get rid of BUG_ONs | ||
* Fix ENOSPC handling | ||
* Make allocator smarter | ||
* add a block group to struct inode | ||
* Do actual block accounting | ||
* Check compat and incompat flags on the inode | ||
* Get rid of struct ctree_path, limiting tree levels held at one time | ||
* Add generation number to key pointer in nodes | ||
* Add generation number to inode | ||
* forbid cross subvolume renames and hardlinks | ||
* Release | ||
* Do real tree locking | ||
* Add extent mirroring (backup copies of blocks) | ||
* Add fancy interface to get access to incremental backups | ||
* Add fancy striped extents to make big reads faster | ||
* Use relocation to try and fix write errors | ||
* Make allocator much smarter | ||
* xattrs (directory streams for regular files) | ||
* Scrub & defrag | ||
|
Oops, something went wrong.