mirror of https://github.com/pkg/sftp.git
				
				
				
			
		
			
				
	
	
		
			29 lines
		
	
	
		
			726 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			726 B
		
	
	
	
		
			Go
		
	
	
	
| // +build linux
 | |
| 
 | |
| package sftp
 | |
| 
 | |
| import (
 | |
| 	"syscall"
 | |
| )
 | |
| 
 | |
| func statvfsFromStatfst(stat *syscall.Statfs_t) (*StatVFS, error) {
 | |
| 	frsize := stat.Frsize
 | |
| 	if frsize == 0 {
 | |
| 		frsize = stat.Bsize // just in case
 | |
| 	}
 | |
| 
 | |
| 	return &StatVFS{
 | |
| 		Bsize:   uint64(stat.Bsize),
 | |
| 		Frsize:  uint64(frsize),
 | |
| 		Blocks:  stat.Blocks,
 | |
| 		Bfree:   stat.Bfree,
 | |
| 		Bavail:  stat.Bavail,
 | |
| 		Files:   stat.Files,
 | |
| 		Ffree:   stat.Ffree,
 | |
| 		Favail:  stat.Ffree,                                                    // not sure how to calculate
 | |
| 		Fsid:    uint64(stat.Fsid.X__val[1])<<32 | uint64(stat.Fsid.X__val[0]), // endianness?
 | |
| 		Flag:    uint64(stat.Flags),                                            // assuming POSIX?
 | |
| 		Namemax: uint64(stat.Namelen),
 | |
| 	}, nil
 | |
| }
 |