summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2020-09-30 17:16:05 -0400
committerRobert Morris <[email protected]>2020-09-30 17:16:05 -0400
commit788b4d1bc9a761212fe4f611cb02e8d34aca1775 (patch)
tree242ad7bda75888612d5da2ada59e95ac847c0072 /kernel
parent2055fe13ac413a53d74baafdfa47e4c892ff9dc9 (diff)
parent05074badc447ce9532824924bfc41a003579beb0 (diff)
downloadxv6-labs-788b4d1bc9a761212fe4f611cb02e8d34aca1775.tar.gz
xv6-labs-788b4d1bc9a761212fe4f611cb02e8d34aca1775.tar.bz2
xv6-labs-788b4d1bc9a761212fe4f611cb02e8d34aca1775.zip
Merge branch 'riscv' of g.csail.mit.edu:xv6-dev into riscv
Diffstat (limited to 'kernel')
-rw-r--r--kernel/fs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/fs.c b/kernel/fs.c
index ec68cd7..848b2c9 100644
--- a/kernel/fs.c
+++ b/kernel/fs.c
@@ -468,6 +468,7 @@ readi(struct inode *ip, int user_dst, uint64 dst, uint off, uint n)
m = min(n - tot, BSIZE - off%BSIZE);
if(either_copyout(user_dst, dst, bp->data + (off % BSIZE), m) == -1) {
brelse(bp);
+ tot = -1;
break;
}
brelse(bp);
@@ -495,6 +496,7 @@ writei(struct inode *ip, int user_src, uint64 src, uint off, uint n)
m = min(n - tot, BSIZE - off%BSIZE);
if(either_copyin(bp->data + (off % BSIZE), user_src, src, m) == -1) {
brelse(bp);
+ n = -1;
break;
}
log_write(bp);