summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/dosfs/msdos_statvfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libfs/src/dosfs/msdos_statvfs.c')
-rw-r--r--cpukit/libfs/src/dosfs/msdos_statvfs.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/cpukit/libfs/src/dosfs/msdos_statvfs.c b/cpukit/libfs/src/dosfs/msdos_statvfs.c
index 99f200f3b7..a9e61c568f 100644
--- a/cpukit/libfs/src/dosfs/msdos_statvfs.c
+++ b/cpukit/libfs/src/dosfs/msdos_statvfs.c
@@ -24,12 +24,8 @@ int msdos_statvfs(
{
msdos_fs_info_t *fs_info = root_loc->mt_entry->fs_info;
fat_vol_t *vol = &fs_info->fat.vol;
- rtems_status_code sc = RTEMS_SUCCESSFUL;
- sc = rtems_semaphore_obtain(fs_info->vol_sema, RTEMS_WAIT,
- MSDOS_VOLUME_SEMAPHORE_TIMEOUT);
- if (sc != RTEMS_SUCCESSFUL)
- rtems_set_errno_and_return_minus_one(EIO);
+ msdos_fs_lock(fs_info);
sb->f_bsize = FAT_SECTOR512_SIZE;
sb->f_frsize = vol->bpc;
@@ -54,7 +50,7 @@ int msdos_statvfs(
rc = fat_get_fat_cluster(&fs_info->fat, cur_cl, &value);
if (rc != RC_OK)
{
- rtems_semaphore_release(fs_info->vol_sema);
+ msdos_fs_unlock(fs_info);
return rc;
}
@@ -71,6 +67,6 @@ int msdos_statvfs(
sb->f_bavail = vol->free_cls;
}
- rtems_semaphore_release(fs_info->vol_sema);
+ msdos_fs_unlock(fs_info);
return RC_OK;
}