diff options
author | resver <resver@60bc1c72-a15a-11de-b98f-4500b42dc123> | 2010-09-19 10:40:40 +0000 |
---|---|---|
committer | resver <resver@60bc1c72-a15a-11de-b98f-4500b42dc123> | 2010-09-19 10:40:40 +0000 |
commit | 0afd12c6e2a39893915f15b64a9b46e1f93735ba (patch) | |
tree | 97a932b2a0e18ba4268a5d0babdeeeb59e9ccbb0 /fuse | |
parent | c613a8c7f9c5c788b337e65a65222fda4056e997 (diff) | |
download | android_external_exfat-0afd12c6e2a39893915f15b64a9b46e1f93735ba.tar.gz android_external_exfat-0afd12c6e2a39893915f15b64a9b46e1f93735ba.tar.bz2 android_external_exfat-0afd12c6e2a39893915f15b64a9b46e1f93735ba.zip |
Report block size = fragment size = cluster size. This fixes displaying of FS size under Mac OS X.
git-svn-id: http://exfat.googlecode.com/svn/trunk@166 60bc1c72-a15a-11de-b98f-4500b42dc123
Diffstat (limited to 'fuse')
-rw-r--r-- | fuse/main.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/fuse/main.c b/fuse/main.c index 0a6901f..f79209c 100644 --- a/fuse/main.c +++ b/fuse/main.c @@ -227,13 +227,10 @@ static int fuse_exfat_utimens(const char* path, const struct timespec tv[2]) static int fuse_exfat_statfs(const char* path, struct statvfs* sfs) { - const uint64_t block_count = le64_to_cpu(ef.sb->block_count); - - sfs->f_bsize = BLOCK_SIZE(*ef.sb); + sfs->f_bsize = CLUSTER_SIZE(*ef.sb); sfs->f_frsize = CLUSTER_SIZE(*ef.sb); - sfs->f_blocks = block_count; - sfs->f_bavail = (fsblkcnt_t) exfat_count_free_clusters(&ef) * - (CLUSTER_SIZE(*ef.sb) / BLOCK_SIZE(*ef.sb)); + sfs->f_blocks = le64_to_cpu(ef.sb->block_count) >> ef.sb->bpc_bits; + sfs->f_bavail = exfat_count_free_clusters(&ef); sfs->f_bfree = sfs->f_bavail; sfs->f_namemax = EXFAT_NAME_MAX; |