summaryrefslogtreecommitdiff
path: root/fs/dax.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2024-10-07 14:54:21 +0100
committerMark Brown <broonie@kernel.org>2024-10-07 14:54:21 +0100
commit344190e0347324d95393c561a4b8c8dfa8cd628b (patch)
tree20d054b028d30ed361fbaeb20f319482e4a8312f /fs/dax.c
parente4926ca0189dac2e780d6d3cca92052376fd7f0e (diff)
parent8cf0b93919e13d1e8d4466eb4080a4c4d9d66d7b (diff)
ASoC: Merge up v6.12
Fixes build issues with the KVM selftests
Diffstat (limited to 'fs/dax.c')
-rw-r--r--fs/dax.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/dax.c b/fs/dax.c
index becb4a6920c6..c62acd2812f8 100644
--- a/fs/dax.c
+++ b/fs/dax.c
@@ -1305,11 +1305,15 @@ int dax_file_unshare(struct inode *inode, loff_t pos, loff_t len,
struct iomap_iter iter = {
.inode = inode,
.pos = pos,
- .len = len,
.flags = IOMAP_WRITE | IOMAP_UNSHARE | IOMAP_DAX,
};
+ loff_t size = i_size_read(inode);
int ret;
+ if (pos < 0 || pos >= size)
+ return 0;
+
+ iter.len = min(len, size - pos);
while ((ret = iomap_iter(&iter, ops)) > 0)
iter.processed = dax_unshare_iter(&iter);
return ret;