]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/VirtioFsDxe/SimpleFsFlush.c
OvmfPkg: Apply uncrustify changes
[mirror_edk2.git] / OvmfPkg / VirtioFsDxe / SimpleFsFlush.c
1 /** @file
2 EFI_FILE_PROTOCOL.Flush() member function for the Virtio Filesystem driver.
3
4 Copyright (C) 2020, Red Hat, Inc.
5
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7 **/
8
9 #include "VirtioFsDxe.h"
10
11 EFI_STATUS
12 EFIAPI
13 VirtioFsSimpleFileFlush (
14 IN EFI_FILE_PROTOCOL *This
15 )
16 {
17 VIRTIO_FS_FILE *VirtioFsFile;
18 VIRTIO_FS *VirtioFs;
19 EFI_STATUS Status;
20
21 VirtioFsFile = VIRTIO_FS_FILE_FROM_SIMPLE_FILE (This);
22 VirtioFs = VirtioFsFile->OwnerFs;
23
24 if (!VirtioFsFile->IsOpenForWriting) {
25 return EFI_ACCESS_DENIED;
26 }
27
28 //
29 // FUSE_FLUSH is for regular files only.
30 //
31 if (!VirtioFsFile->IsDirectory) {
32 Status = VirtioFsFuseFlush (
33 VirtioFs,
34 VirtioFsFile->NodeId,
35 VirtioFsFile->FuseHandle
36 );
37 if (EFI_ERROR (Status)) {
38 return Status;
39 }
40 }
41
42 Status = VirtioFsFuseFsyncFileOrDir (
43 VirtioFs,
44 VirtioFsFile->NodeId,
45 VirtioFsFile->FuseHandle,
46 VirtioFsFile->IsDirectory
47 );
48 return Status;
49 }