diff options
author | Tyler Hicks <tyhicks@linux.vnet.ibm.com> | 2009-09-16 20:04:20 -0400 |
---|---|---|
committer | Tyler Hicks <tyhicks@linux.vnet.ibm.com> | 2009-09-23 10:10:34 -0400 |
commit | 96a7b9c2f5df899f302ade45cf17ad753fe130fd (patch) | |
tree | 096b67dbaad8e795344554994e28433a1e5b5de1 /fs/ecryptfs/mmap.c | |
parent | 3891959846709a19f76628e33478cd85edb0e79f (diff) |
eCryptfs: Propagate vfs_read and vfs_write return codes
Errors returned from vfs_read() and vfs_write() calls to the lower
filesystem were being masked as -EINVAL. This caused some confusion to
users who saw EINVAL instead of ENOSPC when the disk was full, for
instance.
Also, the actual bytes read or written were not accessible by callers to
ecryptfs_read_lower() and ecryptfs_write_lower(), which may be useful in
some cases. This patch updates the error handling logic where those
functions are called in order to accept positive return codes indicating
success.
Cc: Eric Sandeen <esandeen@redhat.com>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Cc: ecryptfs-devel@lists.launchpad.net
Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Diffstat (limited to 'fs/ecryptfs/mmap.c')
-rw-r--r-- | fs/ecryptfs/mmap.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/ecryptfs/mmap.c b/fs/ecryptfs/mmap.c index 05772aeaa8f4..df4ce99d0597 100644 --- a/fs/ecryptfs/mmap.c +++ b/fs/ecryptfs/mmap.c | |||
@@ -396,9 +396,11 @@ static int ecryptfs_write_inode_size_to_header(struct inode *ecryptfs_inode) | |||
396 | rc = ecryptfs_write_lower(ecryptfs_inode, file_size_virt, 0, | 396 | rc = ecryptfs_write_lower(ecryptfs_inode, file_size_virt, 0, |
397 | sizeof(u64)); | 397 | sizeof(u64)); |
398 | kfree(file_size_virt); | 398 | kfree(file_size_virt); |
399 | if (rc) | 399 | if (rc < 0) |
400 | printk(KERN_ERR "%s: Error writing file size to header; " | 400 | printk(KERN_ERR "%s: Error writing file size to header; " |
401 | "rc = [%d]\n", __func__, rc); | 401 | "rc = [%d]\n", __func__, rc); |
402 | else | ||
403 | rc = 0; | ||
402 | out: | 404 | out: |
403 | return rc; | 405 | return rc; |
404 | } | 406 | } |