Added and documented StatfsOp.

geesefs-0-30-9
Aaron Jacobs 2015-09-09 09:46:24 +10:00
parent 284ddf44b0
commit c49a7e13b7
1 changed files with 37 additions and 0 deletions

View File

@ -19,6 +19,43 @@ import (
"time"
)
////////////////////////////////////////////////////////////////////////
// File system
////////////////////////////////////////////////////////////////////////
// Return statistics about the file system's capacity and available resources.
//
// Called by statfs(2) and friends:
//
// * (https://goo.gl/Xi1lDr) sys_statfs called user_statfs, which calls
// vfs_statfs, which calls statfs_by_dentry.
//
// * (https://goo.gl/VAIOwU) statfs_by_dentry calls the superblock
// operation statfs, which in our case points at
// fuse_statfs (cf. https://goo.gl/L7BTM3)
//
// * (https://goo.gl/Zn7Sgl) fuse_statfs sends a statfs op, then uses
// convert_fuse_statfs to convert the response in a straightforward
// manner.
//
// Note that this op is particularly important on OS X: if you don't implement
// it, the file system will not successfully mount. If you don't model a sane
// amount of free space, the Finder will refuse to copy files into the file
// system.
type StatfsOp struct {
// The size of the file system's blocks, and how many there are in total.
BlockSize uint32
Blocks uint64
// The number of blocks free, and how many are available to non-root users.
BlocksFree uint64
BlocksAvailable uint64
// The total number of inodes in the file system, and how many remain free.
Inodes uint64
InodesFree uint64
}
////////////////////////////////////////////////////////////////////////
// Inodes
////////////////////////////////////////////////////////////////////////