]>
git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/VirtioFsDxe/SimpleFsFlush.c
2 EFI_FILE_PROTOCOL.Flush() member function for the Virtio Filesystem driver.
4 Copyright (C) 2020, Red Hat, Inc.
6 SPDX-License-Identifier: BSD-2-Clause-Patent
9 #include "VirtioFsDxe.h"
13 VirtioFsSimpleFileFlush (
14 IN EFI_FILE_PROTOCOL
*This
17 VIRTIO_FS_FILE
*VirtioFsFile
;
21 VirtioFsFile
= VIRTIO_FS_FILE_FROM_SIMPLE_FILE (This
);
22 VirtioFs
= VirtioFsFile
->OwnerFs
;
24 if (!VirtioFsFile
->IsOpenForWriting
) {
25 return EFI_ACCESS_DENIED
;
29 // FUSE_FLUSH is for regular files only.
31 if (!VirtioFsFile
->IsDirectory
) {
32 Status
= VirtioFsFuseFlush (
35 VirtioFsFile
->FuseHandle
37 if (EFI_ERROR (Status
)) {
42 Status
= VirtioFsFuseFsyncFileOrDir (
45 VirtioFsFile
->FuseHandle
,
46 VirtioFsFile
->IsDirectory