diff options
author | David Howells <dhowells@redhat.com> | 2022-02-21 12:38:17 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2023-12-28 10:45:24 +0100 |
commit | 153a9961b551101cd38e94e26cd92fbfd198b19b (patch) | |
tree | 4d45c248dbdaf8ded00848164de353f239f8bac9 /fs/afs | |
parent | netfs: Implement unbuffered/DIO read support (diff) | |
download | linux-153a9961b551101cd38e94e26cd92fbfd198b19b.tar.xz linux-153a9961b551101cd38e94e26cd92fbfd198b19b.zip |
netfs: Implement unbuffered/DIO write support
Implement support for unbuffered writes and direct I/O writes. If the
write is misaligned with respect to the fscrypt block size, then RMW cycles
are performed if necessary. DIO writes are a special case of unbuffered
writes with extra restriction imposed, such as block size alignment
requirements.
Also provide a field that can tell the code to add some extra space onto
the bounce buffer for use by the filesystem in the case of a
content-encrypted file.
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
cc: linux-cachefs@redhat.com
cc: linux-fsdevel@vger.kernel.org
cc: linux-mm@kvack.org
Diffstat (limited to 'fs/afs')
-rw-r--r-- | fs/afs/inode.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/afs/inode.c b/fs/afs/inode.c index 6f375f0cf650..37485ae31471 100644 --- a/fs/afs/inode.c +++ b/fs/afs/inode.c @@ -250,7 +250,7 @@ static void afs_apply_status(struct afs_operation *op, * what's on the server. */ vnode->netfs.remote_i_size = status->size; - if (change_size) { + if (change_size || status->size > i_size_read(inode)) { afs_set_i_size(vnode, status->size); inode_set_ctime_to_ts(inode, t); inode_set_atime_to_ts(inode, t); |