platform/upstream/btrfs-progs.git
12 years agoBtrfs-progs: make print-tree.c aware of free space cache
Ilya Dryomov [Tue, 13 Mar 2012 16:36:56 +0000 (18:36 +0200)]
Btrfs-progs: make print-tree.c aware of free space cache

This adds proper formatting for free space and inode cache items in
btrfs-debug-tree output.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoBtrfs-progs: bring 'subvol get-default' back in
Ilya Dryomov [Mon, 12 Mar 2012 17:17:39 +0000 (19:17 +0200)]
Btrfs-progs: bring 'subvol get-default' back in

Commit bab2c565 accidentally broke 'subvol get-default' command by
removing almost all of the underlying code.  Bring it back with some
fixes and improvements.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoBtrfs-progs: refactor resolve_root() function a bit
Ilya Dryomov [Mon, 12 Mar 2012 17:17:39 +0000 (19:17 +0200)]
Btrfs-progs: refactor resolve_root() function a bit

Don't pass a pointer to root_id to resolve_root().  It's always the same as
ri->root_id, passing a pointer hints that root_id can somehow change which is
not true.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoBtrfs-progs: nuke redundant zeroing in __list_subvol_search()
Ilya Dryomov [Mon, 12 Mar 2012 17:17:39 +0000 (19:17 +0200)]
Btrfs-progs: nuke redundant zeroing in __list_subvol_search()

There's no need to zero out things twice.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agobtrfsck: add early code to handle corrupted block groups
Chris Mason [Wed, 22 Feb 2012 02:20:54 +0000 (21:20 -0500)]
btrfsck: add early code to handle corrupted block groups

This is mostly disabled, but it is step one in handling
corrupted block groups in the extent allocation tree.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agoScan /dev/md and device mapper devices last
Chris Mason [Tue, 21 Feb 2012 20:56:10 +0000 (15:56 -0500)]
Scan /dev/md and device mapper devices last

When we're using multipath or raid0, it is possible
that btrfs dev scan will find one of the component devices
instead of the proper virtual device the kernel creates.

We want to make sure the kernel scans the virtual devices last,
since it always remembers the last device it finds with a given fsid.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agoBtrfs: use /proc/partitions scanning for btrfs_scan_for_fsid
Chris Mason [Tue, 21 Feb 2012 20:33:20 +0000 (15:33 -0500)]
Btrfs: use /proc/partitions scanning for btrfs_scan_for_fsid

btrfs_scan_for_fsid is used by open_ctree and by mkfs when it is
checking for mounted devices.  It currently scans all of /dev,
which is rarely the right answer.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agoBtrfsck: add the ability to prune corrupt extent allocation tree blocks
Chris Mason [Tue, 21 Feb 2012 19:37:21 +0000 (14:37 -0500)]
Btrfsck: add the ability to prune corrupt extent allocation tree blocks

When we discover bad blocks in the extent allocation tree, repair can
now discard them and recreate the references from the rest of the trees.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agobtrfsck: remove extents from the fsck reference tracker as they are freed
Chris Mason [Fri, 10 Feb 2012 18:28:50 +0000 (13:28 -0500)]
btrfsck: remove extents from the fsck reference tracker as they are freed

During btrfsck --repair, we make an index of extents that have incorrect
reference counts.  Once we've collect the whole index, we go through
and modify the extent allocation tree to reflect the correct results.

Changing the extent allocation tree may free blocks, and so it may
end up removing a block that had a missing reference structure.  The
fsck code may then circle back around and add the reference back.

The result is an extent that isn't actually used, but is recorded in the
extent allocation tree.

This commit adds a hook called as extents are freed.  The hook searches
the index of incorrect references and updates it to reflect the freeing
of the extent.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agobtrfsck: make sure we fix the block group accounting during repair
Chris Mason [Thu, 9 Feb 2012 16:53:33 +0000 (11:53 -0500)]
btrfsck: make sure we fix the block group accounting during repair

The block group accounting is fixed after we check the extent back
references.  This makes sure the accounting is fixed unless we
were not able to repair the backrefs.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agobtrfsck: add --init-csum-tree to replace the csum root with an empty one
Chris Mason [Thu, 9 Feb 2012 15:38:05 +0000 (10:38 -0500)]
btrfsck: add --init-csum-tree to replace the csum root with an empty one

This will effectively delete all of your crcs, but at least you'll
be able to mount the FS with nodatasum.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agobtrfsck: make sure to dirty all block groups as we fix accounting
Chris Mason [Thu, 9 Feb 2012 14:29:19 +0000 (09:29 -0500)]
btrfsck: make sure to dirty all block groups as we fix accounting

The code that corrects the count of bytes used in each block group
was only marking block groups dirty when they contained extents.  This
fixes things to dirty all the block groups, so any empty block groups
are written with their correct (zero) count.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agoFix btrfs-convert, btrfs-restore and btrfs-find-root build
Chris Mason [Thu, 9 Feb 2012 03:26:26 +0000 (22:26 -0500)]
Fix btrfs-convert, btrfs-restore and btrfs-find-root build

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fixit
Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agoTurn off some commands in Makefile
Chris Mason [Thu, 9 Feb 2012 02:38:20 +0000 (21:38 -0500)]
Turn off some commands in Makefile

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agoMerge branch 'for-chris' of git://github.com/idryomov/btrfs-progs
Chris Mason [Thu, 9 Feb 2012 02:29:56 +0000 (21:29 -0500)]
Merge branch 'for-chris' of git://github.com/idryomov/btrfs-progs

12 years agobtrfsck: fix block group accounting during repair
Chris Mason [Thu, 9 Feb 2012 02:29:13 +0000 (21:29 -0500)]
btrfsck: fix block group accounting during repair

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agoBtrfs-progs: allow multi-line command group synopsis
Ilya Dryomov [Wed, 8 Feb 2012 15:45:54 +0000 (17:45 +0200)]
Btrfs-progs: allow multi-line command group synopsis

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agobtrfs-corrupt-block: add -E option to randomly corrupt the extent_root
Chris Mason [Tue, 7 Feb 2012 13:36:38 +0000 (08:36 -0500)]
btrfs-corrupt-block: add -E option to randomly corrupt the extent_root

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agobtrfsck: add code to rebuild extent records
Chris Mason [Tue, 7 Feb 2012 10:13:24 +0000 (05:13 -0500)]
btrfsck: add code to rebuild extent records

This also includes a new --repair btrfsck option.  For now it can
only fix errors in the extent allocation tree.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agobtrfs-corrupt-block: add -e option to corrupt the extent record
Chris Mason [Mon, 6 Feb 2012 13:54:05 +0000 (08:54 -0500)]
btrfs-corrupt-block: add -e option to corrupt the extent record

This will zero out the extent allocation tree records for the extent.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agobtrfsck: don't BUG on corrupted extent records
Chris Mason [Mon, 6 Feb 2012 13:53:43 +0000 (08:53 -0500)]
btrfsck: don't BUG on corrupted extent records

12 years agoAllow extent_buffers to use more ram
Chris Mason [Mon, 6 Feb 2012 10:06:18 +0000 (05:06 -0500)]
Allow extent_buffers to use more ram

This changes free_some_buffers (called each time we allocate an extent
buffer) to allow a higher hard limit on the number of extent buffers
in use.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agobtrfsck: print some progress
Chris Mason [Mon, 6 Feb 2012 10:05:59 +0000 (05:05 -0500)]
btrfsck: print some progress
Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agoAdd open_ctree_fs_info for partial FS opens
Chris Mason [Sun, 5 Feb 2012 21:11:48 +0000 (16:11 -0500)]
Add open_ctree_fs_info for partial FS opens

fsck needs to be able to open a damaged FS, which means open_ctree needs
to be able to return a damaged FS.

This adds a new open_ctree_fs_info which can be used to open any and all
roots that are valid.  btrfs-debug-tree is changed to use it.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agoMerge branch 'restriper' of git://github.com/idryomov/btrfs-progs
Chris Mason [Sun, 5 Feb 2012 20:09:10 +0000 (15:09 -0500)]
Merge branch 'restriper' of git://github.com/idryomov/btrfs-progs

12 years agoBtrfs-progs: fall back to the v1 ioctl if the new balance ioctl fails
Chris Mason [Sun, 5 Feb 2012 15:42:02 +0000 (10:42 -0500)]
Btrfs-progs: fall back to the v1 ioctl if the new balance ioctl fails

This only falls back if the plain version of balance start is used.
Any args make us report the ioctl isn't supported.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoMerge branch 'restriper' of git://github.com/idryomov/btrfs-progs
Chris Mason [Sun, 5 Feb 2012 15:14:09 +0000 (10:14 -0500)]
Merge branch 'restriper' of git://github.com/idryomov/btrfs-progs

12 years agoMerge branch 'parser' of git://github.com/idryomov/btrfs-progs
Chris Mason [Sun, 5 Feb 2012 15:14:01 +0000 (10:14 -0500)]
Merge branch 'parser' of git://github.com/idryomov/btrfs-progs

12 years agoBtrfs-progs: add restriper commands
Ilya Dryomov [Fri, 3 Feb 2012 19:02:30 +0000 (21:02 +0200)]
Btrfs-progs: add restriper commands

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoBtrfs-progs: add 'balance' command group infrastructure
Ilya Dryomov [Fri, 3 Feb 2012 19:02:30 +0000 (21:02 +0200)]
Btrfs-progs: add 'balance' command group infrastructure

Add balance command group under both 'btrfs' and 'btrfs filesystem'.
Preserve the old 'btrfs filesystem balance <path>' behaviour.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoBtrfs-progs: add restriper headers
Ilya Dryomov [Fri, 3 Feb 2012 19:02:29 +0000 (21:02 +0200)]
Btrfs-progs: add restriper headers

Add restriper headers and update print-tree.c

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoBtrfs-progs: switch all existing commands to a new parser
Ilya Dryomov [Fri, 3 Feb 2012 19:00:17 +0000 (21:00 +0200)]
Btrfs-progs: switch all existing commands to a new parser

The new infrastructure offloads checking number of arguments passed to a
command to individual command handlers.  Fix them up accordingly.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoBtrfs-progs: implement new subcommand parser
Ilya Dryomov [Fri, 3 Feb 2012 19:00:17 +0000 (21:00 +0200)]
Btrfs-progs: implement new subcommand parser

This completely replaces the existing subcommand infrastructure, which
is not flexible enough to accomodate our needs.  Instead of a global
command table we now have per-level tables and command group handlers,
which allows command-group-specific handling of options and subcommands.
The new parser exports a clear interface and gets out of the way - all
control over how matching is done is passed to commands and command
group handlers.

One side effect of this is that command implementors have to check the
number of arguments themselves - patch to fix up all existing commands
follows.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoBtrfs-progs: rearrange files in the repo
Ilya Dryomov [Fri, 3 Feb 2012 19:00:17 +0000 (21:00 +0200)]
Btrfs-progs: rearrange files in the repo

Separate every command group into its own file (cmds_<group>.c) and
rearrange includes.  Remove btrfs_cmds.c.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoBtrfs-progs: change the way mkfs picks raid profiles
Ilya Dryomov [Mon, 12 Dec 2011 18:00:25 +0000 (20:00 +0200)]
Btrfs-progs: change the way mkfs picks raid profiles

Currently mkfs in response to

  mkfs.btrfs -d raid10 dev1 dev2

instead of telling "you can't do that" creates a SINGLE on two devices,
and only rebalance can transform it to raid0.  Generally, it never warns
users about decisions it makes and it's not at all obvious which profile
it picks when.

Fix this by checking the number of effective devices and reporting back
if the specified profile is impossible to create.  Do not create FS in
case invalid profile was given.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoBtrfs-progs: fail gracefully on error from open_ctree()
Ilya Dryomov [Mon, 12 Dec 2011 18:00:25 +0000 (20:00 +0200)]
Btrfs-progs: fail gracefully on error from open_ctree()

Error checking block got moved mistakenly exposing us to a potential
segmentation fault.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
12 years agoBtrfs-progs: Relocate -lpthread in makefile
Arnd Hannemann [Thu, 1 Dec 2011 16:33:21 +0000 (11:33 -0500)]
Btrfs-progs: Relocate -lpthread in makefile

This patch fixes the following compile error when compiled with
gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3):

gcc -lpthread -g -O0 -o btrfs btrfs.o btrfs_cmds.o scrub.o \
ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o root-tree.o dir-item.o file-item.o inode-item.o inode-map.o crc32c.o rbtree.o extent-cache.o extent_io.o volumes.o utils.o btrfs-list.o btrfslabel.o  -luuid
scrub.o: In function `scrub_start':
/home/arnd/Projekte/kernel/btrfs-progs/scrub.c:1342: undefined reference to `pthread_create'
/home/arnd/Projekte/kernel/btrfs-progs/scrub.c:1360: undefined reference to `pthread_create'
/home/arnd/Projekte/kernel/btrfs-progs/scrub.c:1374: undefined reference to `pthread_join'
/home/arnd/Projekte/kernel/btrfs-progs/scrub.c:1430: undefined reference to `pthread_cancel'
/home/arnd/Projekte/kernel/btrfs-progs/scrub.c:1432: undefined reference to `pthread_join'
collect2: ld returned 1 exit status
make: *** [btrfs] Error 1

The gcc man page says: "[...] the placement of the -l option is significant." so lets include -lpthread together with the usual $(LIBS)

Signed-off-by: Arnd Hannemann <arnd@arndnet.de>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agobtrfs-progs: make sure btrfs-zero-log writes something
Chris Mason [Mon, 21 Nov 2011 15:27:17 +0000 (10:27 -0500)]
btrfs-progs: make sure btrfs-zero-log writes something

The close_ctree code does a check to see if the FS has
changed before it does any IO.  This forces the commit.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
12 years agoBtrfs: add the tree history log to btrfs-progs
Chris Mason [Sat, 5 Nov 2011 18:58:41 +0000 (14:58 -0400)]
Btrfs: add the tree history log to btrfs-progs

This also adds btrfs-debug-tree -R to print the history

Signed-off-by: Chris Mason <chris.mason@oracle.com>
13 years agoBtrfs: fix raid10 reading math
Chris Mason [Thu, 3 Nov 2011 16:17:49 +0000 (12:17 -0400)]
Btrfs: fix raid10 reading math

The btrfs-progs raid10 code has been silently reading the wrong
raid10 block forever.  We didn't notice because it was always fixed
up by the retry code.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
13 years agoBtrfs-progs: added ioctls and commands to resolve inodes and logical addrs
Jan Schmidt [Wed, 2 Nov 2011 15:42:30 +0000 (11:42 -0400)]
Btrfs-progs: added ioctls and commands to resolve inodes and logical addrs

two new commands that make use of the new path resolving functions
implemented for scrub, doing the resolving in-kernel. the result for both
commands is a list of files belonging to that inode / logical address.

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
13 years agoBtrfs-progs: added resolve commands to man page
Jan Schmidt [Fri, 8 Jul 2011 10:25:11 +0000 (12:25 +0200)]
Btrfs-progs: added resolve commands to man page

Added "inspect-internal inode-resolve" and "inspect-internal
logical-resolve" to the btrfs(8) man page.

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
13 years agoFix missing entries in listing of subvolumes
Li Zefan [Wed, 15 Dec 2010 03:33:33 +0000 (03:33 +0000)]
Fix missing entries in listing of subvolumes

Stephane Chazelas <stephane.chazelas@gmail.com> writes:
> I've got a btrfs FS with 84 subvolumes in it (some created with
> "btrfs sub create", some with "btrfs sub snap" of the other
> ones). There's no nesting of subvolumes at all (all direct children
> of the root subvolume).
>
> The "btrfs subvolume list" is only showing 80 subvolumes. The 4
> missing ones (1 original volume, 3 snapshots) do exist on disk and
> files in there have different st_devs from any other subvolume.
>
> I found
> http://thread.gmane.org/gmane.comp.file-systems.btrfs/8123/focus=8208
>
> which looks like the same issue, with Li Zefan saying he had a
> fix, but I couldn't find any mention that it was actually fixed.

Li Zefan <lizf@cn.fujitsu.com> replied:
> After that, I posted a patch to fix btrfs-progs, which Chris aggreed
> on:
>
> http://marc.info/?l=linux-btrfs&m=129238454714319&w=2

So this btrfs-progs patch should fix missing subvolumes in the output of
"subvolume list":

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoBtrfs-progs: btrfs-list: split list_subvols
Chris Mason [Wed, 2 Nov 2011 15:22:09 +0000 (11:22 -0400)]
Btrfs-progs: btrfs-list: split list_subvols

split list_subvols to separate functions and allow printing only in the
containing function. lets us make use of those functions when resolving
logical addresses.

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
13 years agoMerge branch 'recovery-beta' of git://git.kernel.org/pub/scm/linux/kernel/git/mason...
Chris Mason [Mon, 31 Oct 2011 18:05:03 +0000 (14:05 -0400)]
Merge branch 'recovery-beta' of git://git./linux/kernel/git/mason/btrfs-progs

13 years agobtrfs-progs: remove old debugging statement
Chris Mason [Fri, 28 Oct 2011 02:40:23 +0000 (22:40 -0400)]
btrfs-progs: remove old debugging statement

Signed-off-by: Chris Mason <chris.mason@oracle.com>
13 years agobtrfs-progs: add a utility to corrupt a single block
Chris Mason [Fri, 28 Oct 2011 02:02:19 +0000 (22:02 -0400)]
btrfs-progs: add a utility to corrupt a single block

13 years agobtrfs-debug-tree: add -r option to print only the roots
Chris Mason [Thu, 27 Oct 2011 21:42:26 +0000 (17:42 -0400)]
btrfs-debug-tree: add -r option to print only the roots
Signed-off-by: Chris Mason <chris.mason@oracle.com>
13 years agorestore: deal with holes and set i_size correctly
Chris Mason [Thu, 27 Oct 2011 20:25:12 +0000 (16:25 -0400)]
restore: deal with holes and set i_size correctly

This changes restore to set the i_size of the files it
copies out based on the size in the inode.  It also changes
it to skip over holes.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
13 years agobtrfs-progs: fixup is_mounted checks
Chris Mason [Thu, 27 Oct 2011 20:23:14 +0000 (16:23 -0400)]
btrfs-progs: fixup is_mounted checks

/proc/mounts contains device names that don't exist,
we end up erroring out because we're not able to stat
the device (that doesn't exist).

Fix this by allowing the mkfs when the target device doesn't exist.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
13 years agobtrfs-progs: add a recovery utility to pull files from damanged filesystems
Josef Bacik [Fri, 26 Aug 2011 13:51:36 +0000 (09:51 -0400)]
btrfs-progs: add a recovery utility to pull files from damanged filesystems

Signed-off-by: Josef Bacik <josef@redhat.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
13 years agoPrint the root generation in btrfs-debug-tree
Chris Mason [Wed, 15 Dec 2010 21:03:00 +0000 (16:03 -0500)]
Print the root generation in btrfs-debug-tree

Signed-off-by: Chris Mason <chris.mason@oracle.com>
13 years agoPrint the root generation in btrfs-debug-tree
Chris Mason [Wed, 15 Dec 2010 21:03:00 +0000 (16:03 -0500)]
Print the root generation in btrfs-debug-tree

Signed-off-by: Chris Mason <chris.mason@oracle.com>
13 years agoBtrfs-progs: make btrfs df report profiles for mixed block groups
Ilya Dryomov [Sat, 8 Oct 2011 21:09:19 +0000 (00:09 +0300)]
Btrfs-progs: make btrfs df report profiles for mixed block groups

Profiles other than SINGLE for mixed chunks might sound a bit strange,
but there is nothing in the filesystem that prevents a crazy user from
doing it.  So make "btrfs fi df" report them properly.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
13 years agobtrfs-progs: Improvement for making btrfs image from source directory.
Zhong, Xin [Tue, 21 Jun 2011 01:45:59 +0000 (09:45 +0800)]
btrfs-progs: Improvement for making btrfs image from source directory.

* Initialize ret in btrfs_csum_file_block
* Do not abort when xattr is not supported in the source directory
* Remove size limitation of 256M
* Alloc data chunk in a smaller size (8M) to make btrfs image smaller
* Let user specify the btrfs image name
Depends on below patch from samsung guys:
http://marc.info/?l=linux-btrfs&m=127858068226025&w=2

Signed-off-by: Zhong, Xin <xin.zhong@intel.com>
13 years agoScan the devices listed in /proc/partitions
Goffredo Baroncelli [Wed, 15 Jun 2011 19:55:25 +0000 (21:55 +0200)]
Scan the devices listed in /proc/partitions

During the commands:
- btrfs filesystem show
- btrfs device scan
the devices "scanned" are extracted from /proc/partitions. This
should avoid to scan devices not suitable for a btrfs filesystem like cdrom
and floppy or to scan not existant devices.
The old behavior (scan all the block devices under /dev) may be
forced passing the "--all-devices" switch.

13 years agoBtrfs-progs: specify label length larger than 255 bytes cause mkfs.btrfs buffer overflow
Jeff Liu [Wed, 31 Aug 2011 04:35:51 +0000 (12:35 +0800)]
Btrfs-progs: specify label length larger than 255 bytes cause mkfs.btrfs buffer overflow

Hello,

While going through the mkfs.c, I noticed there is an issue for label
length checking, mkfs.btrfs will crashed if the label length exceeding
255 bytes, it's easy to triggered that out as below:

jeff@pibroch:~/opensource/btrfs-progs$ sudo ./mkfs.btrfs -L `perl -e
'print "A"x256'` /usr/src/linux-3.0/img0

WARNING! - Btrfs v0.19-35-g1b444cd IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

*** buffer overflow detected ***: ./mkfs.btrfs terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x50)[0xb7774df0]
/lib/i386-linux-gnu/libc.so.6(+0xe4cca)[0xb7773cca]
/lib/i386-linux-gnu/libc.so.6(__strcpy_chk+0x3f)[0xb777305f]
./mkfs.btrfs[0x805acc4]
./mkfs.btrfs[0x805def6]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0xb76a5e37]
./mkfs.btrfs[0x8048ef1]
======= Memory map: ========
......

a tiny patch could fix it.

Signed-off-by: Jie Liu <jeff.liu@oracle.com>
13 years agobtrfsck: decode error properly
Sergei Trofimovich [Sun, 28 Aug 2011 11:23:24 +0000 (14:23 +0300)]
btrfsck: decode error properly

check_mounted() returns kernel-style negative errors.
Patch drops sign for strerror().

Before the patch:
check_mounted(): Could not open /dev/sdb2
Could not check mount status: Unknown error 18446744073709551603

After the patch:
check_mounted(): Could not open /dev/sdb2
Could not check mount status: Permission denied

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
13 years agocheck number of args for btrfs sub snap correctly
Andreas Philipp [Thu, 11 Aug 2011 06:45:40 +0000 (08:45 +0200)]
check number of args for btrfs sub snap correctly

Check whether there are the right number of arguments (exatly 2 without
the flag -r) in the subcommand handler for the btrfs subvolume snapshot
command.

Signed-off-by: Andreas Philipp <philipp.andreas@gmail.com>
13 years agoBtrfs-progs: add "btrfs subvolume get-default" subcommand
Zhong, Xin [Tue, 12 Jul 2011 02:48:37 +0000 (10:48 +0800)]
Btrfs-progs: add "btrfs subvolume get-default" subcommand

Add subcommand to get the default subvolume of btrfs filesystem

V2->V3:
* add man page
* based on http://git.darksatanic.net/repo/btrfs-progs-unstable.git
  integration-20110705

Reviewed-by: Andreas Philipp <philipp.andreas@gmail.com>
Reviewed-by: Goffredo Baroncelli <kreijack@libero.it>
Reported-by: Yang, Yi <yi.y.yang@intel.com>
Signed-off-by: Zhong, Xin <xin.zhong@intel.com>
13 years agobtrfs-progs-unstable: replace debug-tree to btrfs-debug-tree in INSTALL
Wang Sheng-Hui [Mon, 18 Jul 2011 07:26:56 +0000 (15:26 +0800)]
btrfs-progs-unstable: replace debug-tree to btrfs-debug-tree in INSTALL

From c04da1655df6d75db834ddbd3a3b4a58a0d9a0c9 Mon Sep 17 00:00:00 2001
From: Wang Sheng-Hui <shhuiw@gmail.com>
Date: Mon, 18 Jul 2011 02:17:31 -0500
Subject: [PATCH] btrfs-progs-unstable: replace debug-tree to btrfs-debug-tree in INSTALL

debug-tree doesn't exist after btrfs-progs installed.
Use btrfs-debug-tree to print FS metadata in text form,
not debug-tree.

Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com>
13 years agofix incorrect argument checking for "btrfs sub snap -r"
Hugo Mills [Sat, 9 Jul 2011 17:50:23 +0000 (18:50 +0100)]
fix incorrect argument checking for "btrfs sub snap -r"

Stephane Chazelas and Andreas Philipp spotted that the earlier patch
fixing this issue was incomplete, and should also update the argument-
count checking code as well.

Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agobtrfs-progs: scrub added to manpage
Jan Schmidt [Mon, 18 Jul 2011 12:37:25 +0000 (14:37 +0200)]
btrfs-progs: scrub added to manpage

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agobtrfs-progs: scrub userland implementation
Jan Schmidt [Mon, 18 Jul 2011 12:37:24 +0000 (14:37 +0200)]
btrfs-progs: scrub userland implementation

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agobtrfs-progs: added check_mounted_where
Jan Schmidt [Mon, 18 Jul 2011 12:37:23 +0000 (14:37 +0200)]
btrfs-progs: added check_mounted_where

new version of check_mounted() returning more information gathered while
searching. check_mounted() is now a wrapper for check_mounted_where(). the
new version is needed by scrub.c

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agobtrfs-progs: scrub ioctls
Jan Schmidt [Mon, 18 Jul 2011 12:37:22 +0000 (14:37 +0200)]
btrfs-progs: scrub ioctls

- scrub structs added
- ioctls for scrub
- BTRFS_FSID_SIZE moved

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agobtrfs-progs: commands added
Jan Schmidt [Mon, 18 Jul 2011 12:37:21 +0000 (14:37 +0200)]
btrfs-progs: commands added

- scrub commands added
- open_file_or_dir no longer static (needed by scrub.c)

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoremove unused include "version.h"
Andreas Philipp [Sun, 3 Jul 2011 19:34:20 +0000 (21:34 +0200)]
remove unused include "version.h"

In the file btrfs-list.c version.h was included but not used. So just
drop it.

Signed-off-by: Andreas Philipp <philipp.andreas@gmail.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoupdate manpage entries for btrfs subvolume list
Andreas Philipp [Sat, 2 Jul 2011 22:26:40 +0000 (00:26 +0200)]
update manpage entries for btrfs subvolume list

Update the manpage entries for the btrfs subvolume list command to
reflect the newly created additional option '-p'.

Signed-off-by: Andreas Philipp <philipp.andreas@gmail.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoprint parent ID in btrfs suvolume list
Andreas Philipp [Sat, 2 Jul 2011 22:26:39 +0000 (00:26 +0200)]
print parent ID in btrfs suvolume list

There was some discussion on "where" subvolumes live in. Why do we not
simply print the parent ID for each subvolume in btrfs subvolume list?
This patch adds this functionality when called with parameter "-p".

Signed-off-by: Andreas Philipp <philipp.andreas@gmail.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agosome style/layout changes
Andreas Philipp [Fri, 1 Jul 2011 22:44:38 +0000 (00:44 +0200)]
some style/layout changes

Just do a few simple style/layout changes to make the makefile look
better.

Signed-off-by: Andreas Philipp <philipp.andreas@gmail.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoadd all targets to clean target
Andreas Philipp [Fri, 1 Jul 2011 22:44:36 +0000 (00:44 +0200)]
add all targets to clean target

When issuing 'make clean' not all files generated by the individual
targets have been deleted since some files have been missing in the
definition of the 'make clean' target.

Signed-off-by: Andreas Philipp <philipp.andreas@gmail.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoremove unused variables
Hubert Kario [Wed, 29 Jun 2011 17:54:35 +0000 (19:54 +0200)]
remove unused variables

fixes compilation warnings with gcc 4.6.0 20110429

Signed-off-by: Hubert Kario <kario@wit.edu.pl>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agogcc 4.6: fix potentially unused variable
Hugo Mills [Thu, 28 Jul 2011 21:17:57 +0000 (22:17 +0100)]
gcc 4.6: fix potentially unused variable

Fix a complaint by gcc 4.6 that "ret" may be unused in
process_one_leaf of btrfsck.

Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agomake btrfs cross compilation friendly
Kamble, Nitin A [Tue, 28 Jun 2011 19:11:35 +0000 (12:11 -0700)]
make btrfs cross compilation friendly

Attached is a patch to fix a cross compilation issue I observed with btrfs-tools.

Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
Nitin A Kamble
Yocto Project
www.yoctoproject.org

Avoid these kinds of errors while doing cross build:

| ccache i586-poky-linux-gcc -march=i586 --sysroot=/disk0/pokybuild/build0/tmp/sysroots/qemux86 -Wp,-MMD,./.btrfsctl.o.d,-MT,btrfsctl.o -Wall -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -pipe -g -feliminate-unused-debug-types -c btrfsctl.c
| gcc -O2 -pipe -g -feliminate-unused-debug-types -o btrfsctl btrfsctl.o ctree.o disk-io.o radix-tree.o extent-tree.o print-tree.o root-tree.o dir-item.o file-item.o inode-item.o inode-map.o crc32c.o rbtree.o extent-cache.o extent_io.o volumes.o utils.o btrfs-list.o -Wl,-O1  -Wl,--as-needed -luuid
| /usr/bin/ld: i386 architecture of input file `btrfsctl.o' is incompatible with i386:x86-64 output
| /usr/bin/ld: i386 architecture of input file `ctree.o' is incompatible with i386:x86-64 output

13 years agomkfs.btrfs: Fix compilation errors with gcc 4.6
Hugo Mills [Sun, 26 Jun 2011 18:41:18 +0000 (19:41 +0100)]
mkfs.btrfs: Fix compilation errors with gcc 4.6

gcc 4.6 complains about several possible use-before-initialise cases
in mkfs, and stops. Fix these by initialising one of the variables in
question, and using the correct error-handling paths for the
remainder.

Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoBtrfs-progs: Correct path munging in bcp
cwillu [Mon, 13 Jun 2011 22:24:11 +0000 (16:24 -0600)]
Btrfs-progs: Correct path munging in bcp

Bcp was assuming that a path on the command line would never have a slash after
it, which is silly, and would cause the first letter of everything in the root
of the source to be truncated.  Instead, use os.path.relpath to handle
it properly.

Signed-off-by: Carey Underwood <cwillu@cwillu.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agobtrfs-map-logical: segfaults when no output file is given
Arne Jansen [Mon, 14 Mar 2011 11:57:49 +0000 (12:57 +0100)]
btrfs-map-logical: segfaults when no output file is given

when no output file is given, info_file stays NULL and the following
fprintf segfaults. Default to stdout.

Signed-off-by: Arne Jansen <sensille@gmx.net>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agomkfs.btrfs: fix error text in '-r' mode
Sergei Trofimovich [Sat, 4 Jun 2011 08:19:24 +0000 (11:19 +0300)]
mkfs.btrfs: fix error text in '-r' mode

Smart gcc noticed use of uninitialized warning when compiled
with -O0 flags:

    mkfs.c:1291: error: 'file' may be used uninitialized in this function

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agomkfs.btrfs: fix memory leak caused by 'scandir()' calls
Sergei Trofimovich [Sat, 4 Jun 2011 08:19:23 +0000 (11:19 +0300)]
mkfs.btrfs: fix memory leak caused by 'scandir()' calls

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agomkfs.btrfs: free buffers allocated by pretty_sizes
Sergei Trofimovich [Sat, 4 Jun 2011 08:19:22 +0000 (11:19 +0300)]
mkfs.btrfs: free buffers allocated by pretty_sizes

found by valgrind:
==2559== 16 bytes in 1 blocks are definitely lost in loss record 3 of 19
==2559==    at 0x4C2720E: malloc (vg_replace_malloc.c:236)
==2559==    by 0x412F7E: pretty_sizes (utils.c:1054)
==2559==    by 0x4179E9: main (mkfs.c:1395)

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agomkfs.btrfs: write zeroes instead on uninitialized data.
Sergei Trofimovich [Sat, 4 Jun 2011 08:19:21 +0000 (11:19 +0300)]
mkfs.btrfs: write zeroes instead on uninitialized data.

Found by valgrind:
==8968== Use of uninitialised value of size 8
==8968==    at 0x41CE7D: crc32c_le (crc32c.c:98)
==8968==    by 0x40A1D0: csum_tree_block_size (disk-io.c:82)
==8968==    by 0x40A2D4: csum_tree_block (disk-io.c:105)
==8968==    by 0x40A7D6: write_tree_block (disk-io.c:241)
==8968==    by 0x40ACEE: __commit_transaction (disk-io.c:354)
==8968==    by 0x40AE9E: btrfs_commit_transaction (disk-io.c:385)
==8968==    by 0x42CF66: make_image (mkfs.c:1061)
==8968==    by 0x42DE63: main (mkfs.c:1410)
==8968==  Uninitialised value was created by a stack allocation
==8968==    at 0x42B5FB: add_inode_items (mkfs.c:493)

1. On-disk inode format has reserved (and thus, random at alloc time) fields:
   btrfs_inode_item: __le64 reserved[4]
2. Sometimes extents are created on disk without writing data there.
   (Or at least not all data is written there). Kernel code always had
   it kzalloc'ed.
Zero them all.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agomkfs.btrfs: fix symlink names writing
Sergei Trofimovich [Sat, 4 Jun 2011 08:19:20 +0000 (11:19 +0300)]
mkfs.btrfs: fix symlink names writing

Found by valgrind:
==8968== Use of uninitialised value of size 8
==8968==    at 0x41CE7D: crc32c_le (crc32c.c:98)
==8968==    by 0x40A1D0: csum_tree_block_size (disk-io.c:82)
==8968==    by 0x40A2D4: csum_tree_block (disk-io.c:105)
==8968==    by 0x40A7D6: write_tree_block (disk-io.c:241)
==8968==    by 0x40ACEE: __commit_transaction (disk-io.c:354)
==8968==    by 0x40AE9E: btrfs_commit_transaction (disk-io.c:385)
==8968==    by 0x42CF66: make_image (mkfs.c:1061)
==8968==    by 0x42DE63: main (mkfs.c:1410)
==8968==  Uninitialised value was created by a stack allocation
==8968==    at 0x42B5FB: add_inode_items (mkfs.c:493)

readlink(2) does not write '\0' for us, so make it manually.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agomkfs.btrfs: return some defined value instead of garbage when lookup checksum
Sergei Trofimovich [Sat, 4 Jun 2011 08:19:19 +0000 (11:19 +0300)]
mkfs.btrfs: return some defined value instead of garbage when lookup checksum

==31873== Command: ./mkfs.btrfs -r /some/root/
==31873== Parent PID: 31872
==31873==
==31873== Conditional jump or move depends on uninitialised value(s)
==31873==    at 0x42C3D0: add_file_items (mkfs.c:792)
==31873==    by 0x42CAB3: traverse_directory (mkfs.c:948)
==31873==    by 0x42CF11: make_image (mkfs.c:1047)
==31873==    by 0x42DE53: main (mkfs.c:1401)
==31873==  Uninitialised value was created by a stack allocation
==31873==    at 0x41B1B1: btrfs_csum_file_block (file-item.c:195)

'ret' value was not initialized for 'found' branch.

The same fix sits in kernel:
> commit 639cb58675ce9b507eed9c3d6b3335488079b21a
> Author: Chris Mason <chris.mason@oracle.com>
> Date:   Thu Aug 28 06:15:25 2008 -0400
>
>     Btrfs: Fix variable init during csum creation
>
>     Signed-off-by: Chris Mason <chris.mason@oracle.com>

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agomkfs.btrfs: fail on scandir error (-r mode)
Sergei Trofimovich [Sat, 4 Jun 2011 08:19:18 +0000 (11:19 +0300)]
mkfs.btrfs: fail on scandir error (-r mode)

mkfs.btrfs does not handle relative pathnames for now. When
they are passed to it it creates empty image. So first time
I thought it does not work at all.

This patch adds error handling for scandir(). With patch it behaves
this way:

    $ mkfs.btrfs -r ./root
    ...
    fs created label (null) on output.img
            nodesize 4096 leafsize 4096 sectorsize 4096 size 256.00MB
    Btrfs v0.19-52-g438c5ff-dirty
    scandir for ./root failed: No such file or directory
    unable to traverse_directory
    Making image is aborted.
    mkfs.btrfs: mkfs.c:1402: main: Assertion `!(ret)' failed.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agobtrfs-convert: fix typo: 'all inode' -> 'all inodes'
Sergei Trofimovich [Sat, 4 Jun 2011 08:19:17 +0000 (11:19 +0300)]
btrfs-convert: fix typo: 'all inode' -> 'all inodes'

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agomake "btrfs filesystem label" command actually work
Fajar A. Nugraha [Thu, 2 Jun 2011 02:54:27 +0000 (09:54 +0700)]
make "btrfs filesystem label" command actually work

This simple patch makes "btrfs filesystem label" command actually work.

On tmp branch, commit d1dc6a9, "btrfs filesystem label" functionality
was introduced. However the commit lacks one component that lets
"btrfs" accept "filesystem label" command.
Test case:

/dev/loop0

WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label old on /dev/loop0
nodesize 4096 leafsize 4096 sectorsize 4096 size 1.00GB
Btrfs Btrfs v0.19

old

new

FATAL: the filesystem has to be unmounted

new

Not sure if you need if you need a signoff for something as trivial as
this, but here it is just in case.

Signed-off-by: Fajar A. Nugraha <list@fajar.net>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agobtrfs progs: fix extra metadata chunk allocation in --mixed case
Arne Jansen [Thu, 5 May 2011 14:16:12 +0000 (16:16 +0200)]
btrfs progs: fix extra metadata chunk allocation in --mixed case

When creating a mixed fs with mkfs, an extra metadata chunk got allocated.
This is because btrfs_reserve_extent calls do_chunk_alloc for METADATA,
which in turn wasn't able to find the proper space_info, as __find_space_info
did a hard compare of the flags. It is now sufficient for the space_info to
include the proper flag. This reflects the change done to the kernel code
to support mixed chunks.
Also for a subsequent chunk allocation (which should not be hit in the mkfs
case), the chunk is now created with the flags from the space_info instead
of the requested flags. A better solution would be to pull the full changeset
for the mixed case from the kernel into the user mode (or, even better, share
the code)

The additional chunk probably confused block_rsv calculation, which in turn
led to severeal ENOSPC Oopses.

Signed-off-by: Arne Jansen <sensille@gmx.net>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoincorrect argument checking for "btrfs sub snap -r"
Stephane Chazelas [Thu, 30 Jun 2011 12:34:38 +0000 (13:34 +0100)]
incorrect argument checking for "btrfs sub snap -r"

Looks like this was missing in integration-20110626 for the
readonly snapshot patch:

Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agobtrfs-progs: Fix over-sized limit on buffer
Hugo Mills [Sun, 12 Jun 2011 20:52:39 +0000 (21:52 +0100)]
btrfs-progs: Fix over-sized limit on buffer

gcc-4.4 complains (rightly) that the strncpy has a limit too large for
the array it's copying into. Use the correct array length.

Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoUpdated manpage for btrfs subvolume snapshot.
Andreas Philipp [Tue, 26 Apr 2011 08:02:44 +0000 (10:02 +0200)]
Updated manpage for btrfs subvolume snapshot.

Signed-off-by: Andreas Philipp <philipp.andreas@gmail.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoTest the additional ioctl.
Andreas Philipp [Tue, 26 Apr 2011 08:02:43 +0000 (10:02 +0200)]
Test the additional ioctl.

Signed-off-by: Andreas Philipp <philipp.andreas@gmail.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoSupport the new parameters in do_clone(int argc, char** argv).
Andreas Philipp [Tue, 26 Apr 2011 08:02:42 +0000 (10:02 +0200)]
Support the new parameters in do_clone(int argc, char** argv).

Now 'btrfs subvolume snapshot' takes not two but only at least two
parameters. Additionally, the help message is updated accordingly.

Signed-off-by: Andreas Philipp <philipp.andreas@gmail.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoAdd support for read-only subvolumes.
Andreas Philipp [Tue, 26 Apr 2011 08:02:41 +0000 (10:02 +0200)]
Add support for read-only subvolumes.

Use BTRFS_IOC_CREATE_SNAP_V2 instead of BTRFS_IOC_CREATE_SNAP and add
an option for the creation of a readonly snapshot.

Signed-off-by: Andreas Philipp <philipp.andreas@gmail.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoAdded support for an additional ioctl.
Andreas Philipp [Tue, 26 Apr 2011 08:02:40 +0000 (10:02 +0200)]
Added support for an additional ioctl.

Added BTRFS_IOC_SNAP_CREATE_V2 and struct btrfs_ioctl_vol_args_v2 as
defined in fs/btrfs/ioctl.h in the kernel sources.

Signed-off-by: Andreas Philipp <philipp.andreas@gmail.com>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agobtrfs-progs: cast u64 to long long to avoid printf warnings
Anton Blanchard [Thu, 7 Apr 2011 11:02:04 +0000 (21:02 +1000)]
btrfs-progs: cast u64 to long long to avoid printf warnings

When building on ppc64 I hit a number of warnings in printf:

btrfs-map-logical.c:69: error: format ‘%Lu’ expects type ‘long long
unsigned int’, but argument 4 has type ‘u64’

Fix them.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoFix unused-but-set errors in gcc-4.6
Chris Ball [Mon, 7 Mar 2011 15:05:21 +0000 (10:05 -0500)]
Fix unused-but-set errors in gcc-4.6

gcc-4.6 (as shipped in Fedora) turns on -Wunused-but-set-variable by
default, which breaks the build when combined with -Wall, e.g.:

debug-tree.c: In function ‘print_extent_leaf’:
debug-tree.c:45:13: error: variable ‘last_len’ set but not used [-Werror=unused-but-set-variable]
debug-tree.c:44:13: error: variable ‘last’ set but not used [-Werror=unused-but-set-variable]
debug-tree.c:41:21: error: variable ‘item’ set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors

This patch fixes the errors by removing the unused variables.

Signed-off-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoadd detailed help messages to btrfs command
Hubert Kario [Sun, 23 Jan 2011 12:42:43 +0000 (13:42 +0100)]
add detailed help messages to btrfs command

extend the

        btrfs <cmd> --help

command to print detailed help message if available but fallback to
basic help message if detailed is unavailable

add detailed help message for 'filesystem defragment' command

little tweaks in comments

Signed-off-by: Hubert Kario <kario@wit.edu.pl>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agoadd advanced use of --help to help message
Hubert Kario [Sun, 23 Jan 2011 12:39:36 +0000 (13:39 +0100)]
add advanced use of --help to help message

explain how to use

        btrfs <cmd> --help

command in help message

Signed-off-by: Hubert Kario <kario@wit.edu.pl>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>
13 years agomkfs should initialize unused fields properly
Jan Schmidt [Fri, 19 Nov 2010 15:05:27 +0000 (16:05 +0100)]
mkfs should initialize unused fields properly

we discovered speed setting is (probably unintentionally) initialized to 1 in make_btrfs(), while being initialized to 0 in btrfs_add_to_fsid(). initialization in make_btrfs() is due to reuse of buf after pwrite() without clearing it. consequently, code like

  btrfs_set_extent_generation(buf, extent_item, 1);

writes to the same location in buf where speed will be placed, later. It may be a good idea to clear buf after each pwrite(), though leaving the struct btrfs_header intact.

Signed-off-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Signed-off-by: Hugo Mills <hugo@carfax.org.uk>