|
@@ -690,6 +690,10 @@ static ssize_t ocfs2_direct_IO(int rw,
|
|
|
if (OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL)
|
|
|
return 0;
|
|
|
|
|
|
+ /* Fallback to buffered I/O if we are appending. */
|
|
|
+ if (i_size_read(inode) <= offset)
|
|
|
+ return 0;
|
|
|
+
|
|
|
ret = blockdev_direct_IO_no_locking(rw, iocb, inode,
|
|
|
inode->i_sb->s_bdev, iov, offset,
|
|
|
nr_segs,
|