author: Linus Torvalds <torvalds@linux-foundation.org> 2020-08-06 19:35:12 -0700
committer: Linus Torvalds <torvalds@linux-foundation.org> 2020-08-06 19:35:12 -0700
commit: 0e4656a299db8484933a143259e7e5ebae2e3a01
parent: eb65405eb6860935d54b8ba90a5e231e07378be1
Commit Summary:
Diffstat:
1 file changed, 5 insertions, 2 deletions
diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c
index abfb17f88f9a..4a0bff65d3d6 100644
--- a/fs/zonefs/super.c
+++ b/fs/zonefs/super.c
@@ -786,8 +786,11 @@ static ssize_t zonefs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
if (iocb->ki_pos >= ZONEFS_I(inode)->i_max_size)
return -EFBIG;
- if (iocb->ki_flags & IOCB_DIRECT)
- return zonefs_file_dio_write(iocb, from);
+ if (iocb->ki_flags & IOCB_DIRECT) {
+ ssize_t ret = zonefs_file_dio_write(iocb, from);
+ if (ret != -ENOTBLK)
+ return ret;
+ }
return zonefs_file_buffered_write(iocb, from);
}