aboutsummaryrefslogtreecommitdiffstats
path: root/fs/dax.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-10-14 08:03:44 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-10-14 08:03:44 +0200
commit64f3b5a6bc49adf77d58eddd72a4bfccd492fa24 (patch)
treecdd6aa7a0d21482ae4d1e76d837f3712c8c6481d /fs/dax.c
parentUSB: chaoskey: Fix possible deadlock chaoskey_list_lock (diff)
parentLinux 6.12-rc3 (diff)
downloadlinux-64f3b5a6bc49adf77d58eddd72a4bfccd492fa24.tar.gz
linux-64f3b5a6bc49adf77d58eddd72a4bfccd492fa24.zip
Merge 6.12-rc3 into usb-next
We need the USB fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
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;