summaryrefslogtreecommitdiff
path: root/src/os/os_handle.c
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2015-02-17 17:25:57 +0000
committer <>2015-03-17 16:26:24 +0000
commit780b92ada9afcf1d58085a83a0b9e6bc982203d1 (patch)
tree598f8b9fa431b228d29897e798de4ac0c1d3d970 /src/os/os_handle.c
parent7a2660ba9cc2dc03a69ddfcfd95369395cc87444 (diff)
downloadberkeleydb-master.tar.gz
Imported from /home/lorry/working-area/delta_berkeleydb/db-6.1.23.tar.gz.HEADdb-6.1.23master
Diffstat (limited to 'src/os/os_handle.c')
-rw-r--r--src/os/os_handle.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/os/os_handle.c b/src/os/os_handle.c
index 8ae9dc7f..7dbe31e1 100644
--- a/src/os/os_handle.c
+++ b/src/os/os_handle.c
@@ -1,7 +1,7 @@
/*-
* See the file LICENSE for redistribution information.
*
- * Copyright (c) 1998, 2012 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved.
*
* $Id$
*/
@@ -90,7 +90,7 @@ __os_openhandle(env, name, flags, mode, fhpp)
* return EEXISTS.
*/
DB_END_SINGLE_THREAD;
- ret = EEXIST;
+ ret = USR_ERR(env, EEXIST);
goto err;
}
/*
@@ -127,7 +127,10 @@ __os_openhandle(env, name, flags, mode, fhpp)
break;
}
- switch (ret = __os_posix_err(__os_get_syserr())) {
+ ret = __os_posix_err(__os_get_syserr());
+ if (ret != ENOENT)
+ (void)USR_ERR(env, ret);
+ switch (ret) {
case EMFILE:
case ENFILE:
case ENOSPC:
@@ -160,9 +163,8 @@ __os_openhandle(env, name, flags, mode, fhpp)
/* Deny file descriptor access to any child process. */
if ((fcntl_flags = fcntl(fhp->fd, F_GETFD)) == -1 ||
fcntl(fhp->fd, F_SETFD, fcntl_flags | FD_CLOEXEC) == -1) {
- ret = __os_get_syserr();
- __db_syserr(env, ret, DB_STR("0162",
- "fcntl(F_SETFD)"));
+ ret = USR_ERR(env, __os_get_syserr());
+ __db_syserr(env, ret, DB_STR("0162", "fcntl(F_SETFD)"));
ret = __os_posix_err(ret);
goto err;
}
@@ -226,6 +228,7 @@ __os_closehandle(env, fhp)
else
RETRY_CHK((close(fhp->fd)), ret);
if (ret != 0) {
+ ret = USR_ERR(env, ret);
__db_syserr(env, ret, DB_STR("0164", "close"));
ret = __os_posix_err(ret);
}