SCCS-vsn: lib/libc/db/recno/rec_close.c 5.6
*/
#if defined(LIBC_SCCS) && !defined(lint)
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)rec_close.c 5.5 (Berkeley) %G%";
+static char sccsid[] = "@(#)rec_close.c 5.6 (Berkeley) %G%";
#endif /* LIBC_SCCS and not lint */
#include <sys/param.h>
#include <sys/uio.h>
#endif /* LIBC_SCCS and not lint */
#include <sys/param.h>
#include <sys/uio.h>
/* Committed to closing. */
t = dbp->internal;
/* Committed to closing. */
t = dbp->internal;
- rval = t->bt_rfp == NULL ? close(t->bt_rfd) : fclose(t->bt_rfp);
+ rval = ISSET(t, BTF_RINMEM) ? 0 :
+ t->bt_rfp == NULL ? close(t->bt_rfd) : fclose(t->bt_rfp);
if (__bt_close(dbp) == RET_ERROR)
return (RET_ERROR);
if (__bt_close(dbp) == RET_ERROR)
return (RET_ERROR);
- if (ISSET(t, BTF_INMEM) || ISSET(t, BTF_RDONLY) ||
- NOTSET(t, BTF_MODIFIED))
+ if (ISSET(t, BTF_RDONLY | BTF_RINMEM) || !ISSET(t, BTF_MODIFIED))
return (RET_SUCCESS);
/* Read any remaining records into the tree. */
return (RET_SUCCESS);
/* Read any remaining records into the tree. */
return (RET_ERROR);
if (ftruncate(t->bt_rfd, off))
return (RET_ERROR);
return (RET_ERROR);
if (ftruncate(t->bt_rfd, off))
return (RET_ERROR);
- UNSET(t, BTF_MODIFIED);