From 1b8b39d71738f4b2586bdc03ba69472fcebfc86c Mon Sep 17 00:00:00 2001 From: patacongo Date: Tue, 7 Feb 2012 00:29:06 +0000 Subject: Fix a bug in the FAT statfs() implementation git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4375 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/fs/fat/fs_fat32.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'nuttx/fs') diff --git a/nuttx/fs/fat/fs_fat32.c b/nuttx/fs/fat/fs_fat32.c index 0ec1d78cf..909d5a2dc 100644 --- a/nuttx/fs/fat/fs_fat32.c +++ b/nuttx/fs/fat/fs_fat32.c @@ -1,8 +1,8 @@ /**************************************************************************** * fs/fat/fs_fat32.c * - * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt + * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt * * References: * Microsoft FAT documentation @@ -1706,13 +1706,13 @@ static int fat_statfs(struct inode *mountpt, struct statfs *buf) /* Everything else follows in units of clusters */ - buf->f_blocks = fs->fs_nclusters; /* Total data blocks in the file system */ - buf->f_bfree = fat_nfreeclusters(fs, &buf->f_bfree); /* Free blocks in the file system */ - buf->f_bavail = buf->f_bfree; /* Free blocks avail to non-superuser */ - buf->f_namelen = (8+1+3); /* Maximum length of filenames */ - - fat_semgive(fs); - return OK; + ret = fat_nfreeclusters(fs, &buf->f_bfree); /* Free blocks in the file system */ + if (ret >= 0) + { + buf->f_blocks = fs->fs_nclusters; /* Total data blocks in the file system */ + buf->f_bavail = buf->f_bfree; /* Free blocks avail to non-superuser */ + buf->f_namelen = (8+1+3); /* Maximum length of filenames */ + } errout_with_semaphore: fat_semgive(fs); -- cgit v1.2.3