linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] hfsplus: fix return value of hfsplus_get_block()
@ 2018-10-10 18:23 Ernesto A. Fernández
  2018-10-10 18:24 ` [PATCH 2/2] hfs: fix return value of hfs_get_block() Ernesto A. Fernández
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Ernesto A. Fernández @ 2018-10-10 18:23 UTC (permalink / raw)
  To: linux-fsdevel; +Cc: Andrew Morton

Direct writes to empty inodes fail with EIO.  The generic direct-io code
is in part to blame (a patch has been submitted as "direct-io: allow
direct writes to empty inodes"), but hfsplus is worse affected than the
other filesystems because the fallback to buffered I/O doesn't happen.

The problem is the return value of hfsplus_get_block() when called with
!create.  Change it to be more consistent with the other modules.

Signed-off-by: Ernesto A. Fernández <ernesto.mnd.fernandez@gmail.com>
---
 fs/hfsplus/extents.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/hfsplus/extents.c b/fs/hfsplus/extents.c
index 8a8893d522ef..a930ddd15681 100644
--- a/fs/hfsplus/extents.c
+++ b/fs/hfsplus/extents.c
@@ -237,7 +237,9 @@ int hfsplus_get_block(struct inode *inode, sector_t iblock,
 	ablock = iblock >> sbi->fs_shift;
 
 	if (iblock >= hip->fs_blocks) {
-		if (iblock > hip->fs_blocks || !create)
+		if (!create)
+			return 0;
+		if (iblock > hip->fs_blocks)
 			return -EIO;
 		if (ablock >= hip->alloc_blocks) {
 			res = hfsplus_file_extend(inode, false);
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-10-20 10:04 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-10 18:23 [PATCH 1/2] hfsplus: fix return value of hfsplus_get_block() Ernesto A. Fernández
2018-10-10 18:24 ` [PATCH 2/2] hfs: fix return value of hfs_get_block() Ernesto A. Fernández
2018-10-20  1:56   ` Viacheslav Dubeyko
2018-10-11 18:05 ` [PATCH 1/2] hfsplus: fix return value of hfsplus_get_block() Viacheslav Dubeyko
2018-10-11 19:40   ` Ernesto A. Fernández
2018-10-12  0:38     ` Viacheslav Dubeyko
2018-10-12  0:48       ` Ernesto A. Fernández
2018-10-12 18:43         ` Viacheslav Dubeyko
2018-10-12 21:00           ` Ernesto A. Fernández
2018-10-20  1:55 ` Viacheslav Dubeyko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).