A patch set revised/rebased on integration-20130524
these were posted before but havn't made into the repo yet.
I.
Introduce btrfs filesystem show --kernel
There are bugs surrounding btrfs filesystem show,
when ran immediately after the oprations like
btrfs fi label <mnt> <label> and btrfs dev delete <mnt>
the btrfs fi show will still show the contents which is
staled by the preceding label and device operation as show
below
btrfs fi show fails to report label immediately after label
----
btrfs fi label /btrfs test10
btrfs fi show
Label: 'test' uuid: 22b6f318-07d4-4af4-b8e5-b2682cb83a7a
Total devices 3 FS bytes used 28.00KB
devid 3 size 15.00GB used 0.00 path /dev/dm-6
devid 4 size 44.99GB used 1.03GB path /dev/dm-4
btrfs fi label /btrfs
test10
btrfs fi show --kernel
Label: 'test10' uuid: 22b6f318-07d4-4af4-b8e5-b2682cb83a7a
Total devices 2 FS bytes used 28.00KB
devid 3 size 15.00GB used 0.00 path /dev/dm-6
devid 4 size 44.99GB used 1.03GB path /dev/dm-4
-----
After dropping the cache its fine, but to expect the user
to drop the caches to get a consistent view is not a good idea..
-----
btrfs fi show
Label: 'test3' uuid: 0a621111-ad84-4d80-842a-dd9c1c60bf51
Total devices 2 FS bytes used 200.41MB
devid 2 size 48.23GB used 2.03GB path /dev/dm-5
devid 1 size 44.99GB used 2.04GB path /dev/dm-4
btrfs fi label /btrfs
test5
echo 3 > /proc/sys/vm/drop_caches
btrfs fi show
Label: 'test5' uuid: 0a621111-ad84-4d80-842a-dd9c1c60bf51
Total devices 2 FS bytes used 200.41MB
devid 2 size 48.23GB used 2.03GB path /dev/dm-5
devid 1 size 44.99GB used 2.04GB path /dev/dm-4
-----
bugs with btrfs fi show and btrfs device operation..
----
btrfs fi show
Label: 'test' uuid: 22b6f318-07d4-4af4-b8e5-b2682cb83a7a
Total devices 3 FS bytes used 28.00KB
devid 3 size 15.00GB used 0.00 path /dev/dm-6
devid 4 size 44.99GB used 0.00 path /dev/dm-4
devid 2 size 48.23GB used 1.03GB path /dev/dm-5
btrfs dev del /dev/dm-5 /btrfs
(dm-5 is replaced with sde, the previous patch use mapper
will fix this, But reports missing since SB is not yet
updated on the disk)
btrfs fi show
Label: 'test' uuid: 22b6f318-07d4-4af4-b8e5-b2682cb83a7a
Total devices 3 FS bytes used 28.00KB
devid 3 size 15.00GB used 0.00 path /dev/dm-6
devid 4 size 44.99GB used 1.03GB path /dev/dm-4
devid 2 size 48.23GB used 1.03GB path /dev/sde
btrfs fi show --mapper
Label: 'test' uuid: 22b6f318-07d4-4af4-b8e5-b2682cb83a7a
Total devices 3 FS bytes used 28.00KB
devid 4 size 44.99GB used 1.03GB path /dev/mapper/mpathe
devid 3 size 15.00GB used 0.00 path /dev/mapper/mpathbp1
*** Some devices missing
The newly introduced --kernel option is in line with the
device operation...
btrfs fi show --kernel
Label: 'test' uuid: 22b6f318-07d4-4af4-b8e5-b2682cb83a7a
Total devices 2 FS bytes used 28.00KB
devid 3 size 15.00GB used 0.00 path /dev/dm-6
devid 4 size 44.99GB used 1.03GB path /dev/dm-4
--------
In long run, I hope to make the --kernel a default option
for the mounted fs and scan devpath to look for non-mounted
btrfs.
II.
btrfs-progs: device delete to get errors from the kernel
v3: rebased with other patches here.
III. (patch 1/8 to 5/8)
The idea was to introduce /dev/mapper to find for btrfs disk,
However I found first we need to congregate the disk scan
procedure at a function so it would help to consistently tune
it across the btrfs-progs. As of now both fi show and
dev scan use the disks scan they do it on their own.
So here it would congregate btrfs-disk scans at the function
scan_devs_for_btrfs, adds /dev/mapper to be used to scan
for btrfs, and updates its calling functions and few bug fixes.
v1->v2:
Rebased on top of David' integration branch origin/integration-20130524
patch 1 to 5 (below) are made independent of the idea to have the
/dev/mapper as one of the path to recognize the btrfs disks.
Which means they can be installed with out having anything
new. It just adds the framework/improves to integrated a
/dev/mapper path, which is only done in the patch 6.
So patch 1 to 5 are safe.
Also in v1 I suggested that we have -d option instead of
long option --all-devices which I have dropped that idea
here in v2.
Patch 6: adds a new option --mapper to the filesystem show
and device scan which inturn will use /dev/mapper to scan
for the btrfs.
Example output of using the --mapper option is as below..
btrfs filesystem show --mapper
Label: none uuid: 0a621111-ad84-4d80-842a-dd9c1c60bf51
Total devices 2 FS bytes used 1.17MB
devid 1 size 44.99GB used 2.04GB path /dev/mapper/mpathe
devid 2 size 48.23GB used 2.03GB path /dev/mapper/mpathd
Label: none uuid: bad9105f-bdc6-4626-9ba7-80bd97aebe19
Total devices 1 FS bytes used 28.00KB
devid 1 size 15.00GB used 2.04GB path /dev/mapper/mpathbp1
Btrfs v0.20-rc1-350-g7731651
btrfs device scan --mapper
-----
[1118885.473298] device fsid bad9105f-bdc6-4626-9ba7-80bd97aebe19 devid 1 transid 4 /dev/mapper/mpathbp1
[1118885.474077] device fsid 0a621111-ad84-4d80-842a-dd9c1c60bf51 devid 2 transid 103 /dev/mapper/mpathd
[1118885.474133] device fsid 0a621111-ad84-4d80-842a-dd9c1c60bf51 devid 1 transid 103 /dev/mapper/mpathe
-----
Anand Jain (9):
btrfs-progs: btrfs_scan_for_fsid doesn't need all the arguments
btrfs-progs: label option in btrfs filesystem show is not coded
btrfs-progs: update device scan usage
btrfs-progs: congregate dev scan
btrfs-progs: btrfs_scan_one_dir not to skip links when /dev/mapper is
provided
btrfs-progs: scan /dev/mapper in filesystem show and device scan
btrfs-progs: device delete to get errors from the kernel
btrfs-progs: get_label_mounted to return label instead of print
btrfs-progs: introduce btrfs filesystem show --kernel
btrfs-find-root.c | 2 +-
cmds-device.c | 29 ++++--
cmds-filesystem.c | 21 ++--
ctree.h | 1 -
disk-io.c | 2 +-
ioctl.h | 107 ++++++++++++++++++-
man/btrfs.8.in | 16 +--
utils.c | 300 +++++++++++++++++++++++++++++++++++++++++++++++++++---
utils.h | 13 ++-
volumes.c | 20 +++-
volumes.h | 3 +
11 files changed, 467 insertions(+), 47 deletions(-)
--
1.8.1.227.g44fe835
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html