aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Szeredi <miklos@szeredi.hu>2004-06-28 16:52:16 +0000
committerMiklos Szeredi <miklos@szeredi.hu>2004-06-28 16:52:16 +0000
commit71e9f86fc65f242b18539c196d6e6ff52de5f8c7 (patch)
treeef5803bee5d81dc2257ef9a79972153041b0d7b5
parent9a31ccaed6cbc03a3bc81aa2db51e3ee212c5331 (diff)
downloadlibfuse-71e9f86fc65f242b18539c196d6e6ff52de5f8c7.tar.gz
fix
-rw-r--r--ChangeLog4
-rw-r--r--kernel/file.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 50288f4..af26120 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2004-06-27 Miklos Szeredi <mszeredi@inf.bme.hu>
+
+ * Fix file offset wrap around at 4G when doing large reads
+
2004-06-24 Miklos Szeredi <mszeredi@inf.bme.hu>
* Fix memory leak in open (Valient Gough)
diff --git a/kernel/file.c b/kernel/file.c
index 78ce854..e845d86 100644
--- a/kernel/file.c
+++ b/kernel/file.c
@@ -283,7 +283,7 @@ static int fuse_file_read_block(struct inode *inode, char *bl_buf,
return -ERESTARTSYS;
memset(&inarg, 0, sizeof(inarg));
- inarg.offset = bl_index << FUSE_BLOCK_SHIFT;
+ inarg.offset = (unsigned long long) bl_index << FUSE_BLOCK_SHIFT;
inarg.size = FUSE_BLOCK_SIZE;
req->in.h.opcode = FUSE_READ;
req->in.h.ino = inode->i_ino;