diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/dev.c | 2 | ||||
-rw-r--r-- | kernel/file.c | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/kernel/dev.c b/kernel/dev.c index 7036153..7cf3844 100644 --- a/kernel/dev.c +++ b/kernel/dev.c @@ -241,7 +241,7 @@ static ssize_t fuse_dev_read(struct file *file, char *buf, size_t nbytes, if(fc->sb == NULL) return -ENODEV; if(req == NULL) - return -ERESTARTSYS; + return -EINTR; ret = copy_in_args(req->in, buf, nbytes); spin_lock(&fuse_lock); diff --git a/kernel/file.c b/kernel/file.c index 0622e51..14ba59b 100644 --- a/kernel/file.c +++ b/kernel/file.c @@ -53,7 +53,7 @@ static int fuse_readpage(struct file *file, struct page *page) buffer = kmap(page); memset(&inarg, 0, sizeof(inarg)); - inarg.offset = page->index << PAGE_CACHE_SHIFT; + inarg.offset = (unsigned long long) page->index << PAGE_CACHE_SHIFT; inarg.size = PAGE_CACHE_SIZE; in.h.opcode = FUSE_READ; @@ -92,7 +92,8 @@ static int write_buffer(struct inode *inode, struct page *page, buffer = kmap(page); memset(&inarg, 0, sizeof(inarg)); - inarg.offset = (page->index << PAGE_CACHE_SHIFT) + offset; + inarg.offset = ((unsigned long long) page->index << PAGE_CACHE_SHIFT) + + offset; inarg.size = count; in.h.opcode = FUSE_WRITE; |