patch-2.1.4 linux/fs/ext2/file.c

Next file: linux/fs/ext2/ioctl.c
Previous file: linux/fs/ext/inode.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.3/linux/fs/ext2/file.c linux/fs/ext2/file.c
@@ -169,13 +169,13 @@
 				break;
 			}
 		}
-		if (exception()) {
+		c -= copy_from_user (bh->b_data + offset, buf, c);
+		if (!c) {
 			brelse(bh);
-			written = -EFAULT;
+			if (!written)
+				written = -EFAULT;
 			break;
 		}
-		memcpy_fromfs (bh->b_data + offset, buf, c);
-		end_exception();
 		update_vm_cache(inode, pos, bh->b_data + offset, c);
 		pos2 += c;
 		pos += c;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov