source: rtems/cpukit/libfs/src/dosfs/msdos_fsunmount.c @ a5305f6b

4.104.114.84.95
Last change on this file since a5305f6b was a5305f6b, checked in by Ralf Corsepius <ralf.corsepius@…>, on 04/17/04 at 08:34:41

Remove stray white spaces.

  • Property mode set to 100644
File size: 1.7 KB
Line 
1/*
2 *  MSDOS shut down handler implementation
3 *
4 *  Copyright (C) 2001 OKTET Ltd., St.-Petersburg, Russia
5 *  Author: Eugeny S. Mints <Eugeny.Mints@oktet.ru>
6 *
7 *  The license and distribution terms for this file may be
8 *  found in the file LICENSE in this distribution or at
9 *  http://www.rtems.com/license/LICENSE.
10 *
11 *  @(#) $Id$
12 */
13
14#if HAVE_CONFIG_H
15#include "config.h"
16#endif
17
18#include <sys/types.h>
19#include <fcntl.h>
20#include <unistd.h>
21#include <stdlib.h>
22#include <stdio.h>
23
24#include <assert.h>
25#include <rtems.h>
26#include <rtems/libio_.h>
27
28#include "fat.h"
29#include "fat_fat_operations.h"
30#include "fat_file.h"
31
32#include "msdos.h"
33
34/* msdos_shut_down --
35 *     Shut down MSDOS filesystem - free all allocated resources (don't
36 *     return if deallocation of some resource failed - free as much as
37 *     possible).
38 *
39 * PARAMETERS:
40 *     temp_mt_entry - mount table entry
41 *
42 * RETURNS:
43 *     RC_OK on success, or -1 if error occured (errno set apropriately).
44 *
45 */
46int
47msdos_shut_down(rtems_filesystem_mount_table_entry_t *temp_mt_entry)
48{
49    int              rc = RC_OK;
50    msdos_fs_info_t *fs_info = temp_mt_entry->fs_info;
51    fat_file_fd_t   *fat_fd = temp_mt_entry->mt_fs_root.node_access;
52
53    /* close fat-file which correspondes to root directory */
54    if (fat_file_close(temp_mt_entry, fat_fd) != RC_OK)
55    {
56        /* no return - try to free as much as possible */
57        rc = -1;
58    }
59
60    if (fat_shutdown_drive(temp_mt_entry) != RC_OK)
61    {
62        /* no return - try to free as much as possible */
63        rc = -1;
64    }
65
66    rtems_semaphore_delete(fs_info->vol_sema);
67    free(fs_info->cl_buf);
68    free(temp_mt_entry->fs_info);
69
70    return rc;
71}
Note: See TracBrowser for help on using the repository browser.