forked from torvalds/linux
-
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.
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable
* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (864 commits) Btrfs: explicitly mark the tree log root for writeback Btrfs: Drop the hardware crc32c asm code Btrfs: Add Documentation/filesystem/btrfs.txt, remove old COPYING Btrfs: kmap_atomic(KM_USER0) is safe for btrfs_readpage_end_io_hook Btrfs: Don't use kmap_atomic(..., KM_IRQ0) during checksum verifies Btrfs: tree logging checksum fixes Btrfs: don't change file extent's ram_bytes in btrfs_drop_extents Btrfs: Use btrfs_join_transaction to avoid deadlocks during snapshot creation Btrfs: drop remaining LINUX_KERNEL_VERSION checks and compat code Btrfs: drop EXPORT symbols from extent_io.c Btrfs: Fix checkpatch.pl warnings Btrfs: Fix free block discard calls down to the block layer Btrfs: avoid orphan inode caused by log replay Btrfs: avoid potential super block corruption Btrfs: do not call kfree if kmalloc failed in btrfs_sysfs_add_super Btrfs: fix a memory leak in btrfs_get_sb Btrfs: Fix typo in clear_state_cb Btrfs: Fix memset length in btrfs_file_write Btrfs: update directory's size when creating subvol/snapshot Btrfs: add permission checks to the ioctls ...
- Loading branch information
Showing
58 changed files
with
42,494 additions
and
0 deletions.
There are no files selected for viewing
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,91 @@ | ||
|
||
BTRFS | ||
===== | ||
|
||
Btrfs is a new copy on write filesystem for Linux aimed at | ||
implementing advanced features while focusing on fault tolerance, | ||
repair and easy administration. Initially developed by Oracle, Btrfs | ||
is licensed under the GPL and open for contribution from anyone. | ||
|
||
Linux has a wealth of filesystems to choose from, but we are facing a | ||
number of challenges with scaling to the large storage subsystems that | ||
are becoming common in today's data centers. Filesystems need to scale | ||
in their ability to address and manage large storage, and also in | ||
their ability to detect, repair and tolerate errors in the data stored | ||
on disk. Btrfs is under heavy development, and is not suitable for | ||
any uses other than benchmarking and review. The Btrfs disk format is | ||
not yet finalized. | ||
|
||
The main Btrfs features include: | ||
|
||
* Extent based file storage (2^64 max file size) | ||
* Space efficient packing of small files | ||
* Space efficient indexed directories | ||
* Dynamic inode allocation | ||
* Writable snapshots | ||
* Subvolumes (separate internal filesystem roots) | ||
* Object level mirroring and striping | ||
* Checksums on data and metadata (multiple algorithms available) | ||
* Compression | ||
* Integrated multiple device support, with several raid algorithms | ||
* Online filesystem check (not yet implemented) | ||
* Very fast offline filesystem check | ||
* Efficient incremental backup and FS mirroring (not yet implemented) | ||
* Online filesystem defragmentation | ||
|
||
|
||
|
||
MAILING LIST | ||
============ | ||
|
||
There is a Btrfs mailing list hosted on vger.kernel.org. You can | ||
find details on how to subscribe here: | ||
|
||
http://vger.kernel.org/vger-lists.html#linux-btrfs | ||
|
||
Mailing list archives are available from gmane: | ||
|
||
http://dir.gmane.org/gmane.comp.file-systems.btrfs | ||
|
||
|
||
|
||
IRC | ||
=== | ||
|
||
Discussion of Btrfs also occurs on the #btrfs channel of the Freenode | ||
IRC network. | ||
|
||
|
||
|
||
UTILITIES | ||
========= | ||
|
||
Userspace tools for creating and manipulating Btrfs file systems are | ||
available from the git repository at the following location: | ||
|
||
http://git.kernel.org/?p=linux/kernel/git/mason/btrfs-progs-unstable.git | ||
git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git | ||
|
||
These include the following tools: | ||
|
||
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. | ||
|
||
btrfs-debug-tree: print all of the FS metadata in text form. Example: | ||
|
||
btrfs-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
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
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,25 @@ | ||
ifneq ($(KERNELRELEASE),) | ||
# kbuild part of makefile | ||
|
||
obj-$(CONFIG_BTRFS_FS) := 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 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 zlib.o \ | ||
compression.o | ||
else | ||
|
||
# Normal Makefile | ||
|
||
KERNELDIR := /lib/modules/`uname -r`/build | ||
all: | ||
$(MAKE) -C $(KERNELDIR) M=`pwd` CONFIG_BTRFS_FS=m modules | ||
|
||
modules_install: | ||
$(MAKE) -C $(KERNELDIR) M=`pwd` modules_install | ||
clean: | ||
$(MAKE) -C $(KERNELDIR) M=`pwd` clean | ||
|
||
endif |
Oops, something went wrong.