summaryrefslogtreecommitdiff
path: root/fs/dax.c
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2024-10-07 14:01:00 +0100
committerMark Brown <broonie@kernel.org>2024-10-07 14:01:00 +0100
commit85eadae61931f6268b49b5722039e5a248b9ee4c (patch)
tree3ee81f25a394ce2a2ec706f0aff07515b78d4b01 /fs/dax.c
parentdc16594d9967773ca891b3d9111f152e3c99d1cf (diff)
parent8cf0b93919e13d1e8d4466eb4080a4c4d9d66d7b (diff)
regulator: Merge up v6.12-rc2
Pulls in a build fix for 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;