-------- Original Message --------
Subject: btrfs fi df <mount point> outputs info instead of error even when <mount-point> is just a directory
From: Vikram Goyal <vikigo...@gmail.com>
To: linux-btrfs@vger.kernel.org
Date: 2014年07月02日 13:14
Hi,

As the subject specifies there is some confusion (at least with me:) as
to what should be the ouput/behaviour of command btrfs fi df

Please refer to https://bugzilla.redhat.com/show_bug.cgi?id=1114995

The comment by Eric Sendeen further complicates the understanding.
(again with me:)

1} The command btrfs fi df has been more or less been equated with
  traditional df. The problem is that traditional df does not output
  error when no path is given as what currently is done by btrfs fi df
It is OK to show all btrfs usage info when no path is given.
If no one rejects, I'll try to make patch to change the behavior of 'btrfs fi di'
2} Traditional df outputs a column 'Mounted on' for each device/fs it
  finds which btrfs fi df does not. For Ex.

  [vikram@localhost ~]# df
  Filesystem     1K-blocks      Used Available Use% Mounted on
  /dev/sdb6      153942744  69903440  81431312  47% /
  devtmpfs         1520392         0   1520392   0% /dev
  tmpfs            1527612      1444   1526168   1% /dev/shm
  tmpfs            1527612      9108   1518504   1% /run
  tmpfs            1527612         0   1527612   0% /sys/fs/cgroup
  tmpfs            1527612       120   1527492   1% /tmp
  /dev/sda1        1515376    172040   1248312  13% /boot
  /dev/dm-0      330327632 230022072  97561080  71% /home/vikram

  [vikram@localhost ~]# btrfs fi df /usr/
  Data, RAID1: total=42.00GiB, used=32.44GiB
  System, RAID1: total=32.00MiB, used=12.00KiB
  Metadata, RAID1: total=2.00GiB, used=915.04MiB

  [vikram@localhost ~]# btrfs fi df /
  Data, RAID1: total=42.00GiB, used=32.44GiB
  System, RAID1: total=32.00MiB, used=12.00KiB
  Metadata, RAID1: total=2.00GiB, used=915.04MiB
'btrfs fi df' uses btrfs-only ioctl to get usage info, so it's OK when a non-mountpoint
file is given.
Although this should be fixed by checking whether the parameter is a mountpoint.
I'll also try to fix this too.

 [ivikram@localhost ~]# btrfs fi show
 Label: 'fedora'  uuid: d2b3420c-99c1-44cc-a922-ac266072c7fb
         Total devices 2 FS bytes used 33.33GiB
         devid    2 size 73.51GiB used 44.03GiB path /dev/sdb6
         devid    3 size 73.30GiB used 44.03GiB path /dev/sda2

 Label: 'Vikram'  uuid: 0809b072-35f3-4866-92b8-af4772b23ed6
         Total devices 2 FS bytes used 109.68GiB
         devid    1 size 158.03GiB used 157.00GiB path /dev/dm-0
         devid    2 size 157.00GiB used 157.00GiB path /dev/mapper/sdb1

I'm very sorry that I did catch the point why 'btrfs fi show' is used here and what's the problem.
It would be very nice if you can explain what's wrong with 'btrfs fi show'.

So there in no way to understand if there was an error (except for non existant
path) in the path argument given to btrfs fi df. This can create a lot of
confusion in administeration.

So IMHO some changes need to done to btrfs fi df.

1} The requirement for path arg be removed, since that gives a false impression by a valid output that the arg was correct as in fs mount point sense POV.
As mentioned above, there are 2 points related to it.
1.1) default behavior change when no arg is given
It is OK to show all btrfs disk usage when no arg is given just like 'df' command.

1.2) add mount point check
This can be done quite easily.


2} btrfs fi df should output the mount point in all cases:
a} Where arg path is valid but not a mount point. Should output btrfs FS info with mount point as traditional df.
Nice idea. I'll add a warning about this.
b} Where arg path is valid & is also a mount point. Should show output for that mount only.
Current behavior already.
c} Where no arg is given, Should output all btrfs FSes info with mount points.
Point 1.1) will cover this.

3} btrfs fi df should error out on an invalid path as it does currently.
Point 1.2) will cover this.

Thanks for your precious time.


--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to