// SPDX-License-Identifier: GPL-2.0-or-later /* Unbuffered and direct write support. * * Copyright (C) 2023 Red Hat, Inc. All Rights Reserved. * Written by David Howells ([email protected]) */ #include <linux/export.h> #include <linux/uio.h> #include "internal.h" static void netfs_cleanup_dio_write(struct netfs_io_request *wreq) { … } /* * Perform an unbuffered write where we may have to do an RMW operation on an * encrypted file. This can also be used for direct I/O writes. */ ssize_t netfs_unbuffered_write_iter_locked(struct kiocb *iocb, struct iov_iter *iter, struct netfs_group *netfs_group) { … } EXPORT_SYMBOL(…); /** * netfs_unbuffered_write_iter - Unbuffered write to a file * @iocb: IO state structure * @from: iov_iter with data to write * * Do an unbuffered write to a file, writing the data directly to the server * and not lodging the data in the pagecache. * * Return: * * Negative error code if no data has been written at all of * vfs_fsync_range() failed for a synchronous write * * Number of bytes written, even for truncated writes */ ssize_t netfs_unbuffered_write_iter(struct kiocb *iocb, struct iov_iter *from) { … } EXPORT_SYMBOL(…);