Implement btrfs usage

Implements btrfs usage using a double walking diff and
counting the result. Walking gives the most accurate
count and includes inode usage.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
This commit is contained in:
Derek McGowan
2017-12-04 10:48:22 -08:00
parent f6df9f6632
commit 3bc4e69ba1
4 changed files with 120 additions and 17 deletions

View File

@@ -1,5 +1,7 @@
package fs
import "context"
// Usage of disk information
type Usage struct {
Inodes int64
@@ -11,3 +13,10 @@ type Usage struct {
func DiskUsage(roots ...string) (Usage, error) {
return diskUsage(roots...)
}
// DiffUsage counts the numbers of inodes and disk usage in the
// diff between the 2 directories. The first path is intended
// as the base directory and the second as the changed directory.
func DiffUsage(ctx context.Context, a, b string) (Usage, error) {
return diffUsage(ctx, a, b)
}