summaryrefslogtreecommitdiff
path: root/fs/bcachefs
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-05-09 00:33:29 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2024-05-09 23:23:36 +0300
commitd09a8468d915850709ae5f34c23e2b24cb5c3c62 (patch)
tree8e890f9469ffb7904693c0b13b5a21964d6c725b /fs/bcachefs
parent99179fb89847f312229bf816200e1e6e5038e3a3 (diff)
downloadlinux-d09a8468d915850709ae5f34c23e2b24cb5c3c62.tar.xz
bcachefs: fsync() should not return -EROFS
fsync has a slightly odd usage of -EROFS, where it means "does not support fsync". I didn't choose it... Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs')
-rw-r--r--fs/bcachefs/fs-io.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c
index 442bcb0793c4..ef20b64033e0 100644
--- a/fs/bcachefs/fs-io.c
+++ b/fs/bcachefs/fs-io.c
@@ -202,7 +202,10 @@ int bch2_fsync(struct file *file, loff_t start, loff_t end, int datasync)
goto out;
ret = bch2_flush_inode(c, inode);
out:
- return bch2_err_class(ret);
+ ret = bch2_err_class(ret);
+ if (ret == -EROFS)
+ ret = -EIO;
+ return ret;
}
/* truncate: */