aboutsummaryrefslogtreecommitdiffstats
path: root/fuse
diff options
context:
space:
mode:
authorresver <resver@60bc1c72-a15a-11de-b98f-4500b42dc123>2010-09-19 10:40:40 +0000
committerresver <resver@60bc1c72-a15a-11de-b98f-4500b42dc123>2010-09-19 10:40:40 +0000
commit0afd12c6e2a39893915f15b64a9b46e1f93735ba (patch)
tree97a932b2a0e18ba4268a5d0babdeeeb59e9ccbb0 /fuse
parentc613a8c7f9c5c788b337e65a65222fda4056e997 (diff)
downloadandroid_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.c9
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;