diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2008-10-09 20:22:21 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2008-10-09 20:22:21 +0000 |
commit | c77db25e7652c2ebdc4f8b9d429ff97e5201f588 (patch) | |
tree | 8310fa3b83c7ee1037a0efc0d451ed109cf8925b /nuttx/fs | |
parent | fd55042e823c1d6816caf1df68a57f4ae55491c3 (diff) | |
download | px4-nuttx-c77db25e7652c2ebdc4f8b9d429ff97e5201f588.tar.gz px4-nuttx-c77db25e7652c2ebdc4f8b9d429ff97e5201f588.tar.bz2 px4-nuttx-c77db25e7652c2ebdc4f8b9d429ff97e5201f588.zip |
Not setting error on driver errors
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1014 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/fs')
-rw-r--r-- | nuttx/fs/fs_read.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/nuttx/fs/fs_read.c b/nuttx/fs/fs_read.c index 9f171a316..6deb674b1 100644 --- a/nuttx/fs/fs_read.c +++ b/nuttx/fs/fs_read.c @@ -52,14 +52,14 @@ ssize_t read(int fd, FAR void *buf, size_t nbytes) { FAR struct filelist *list; - int ret = EBADF; + int ret = -EBADF; /* Get the thread-specific file list */ list = sched_getfiles(); if (!list) { - *get_errno_ptr() = EMFILE; + errno = EMFILE; return ERROR; } @@ -90,6 +90,17 @@ ssize_t read(int fd, FAR void *buf, size_t nbytes) } } } + + /* If an error occurred, set errno and return -1 (ERROR) */ + + if (ret < 0) + { + errno = -ret; + return ERROR; + } + + /* Otherwise, return the number of bytes read */ + return ret; } |