Date: Sat, 28 Mar 2009 06:05:54 +0000 (UTC) From: Xin LI <delphij@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r190486 - head/lib/libc/db/hash Message-ID: <200903280605.n2S65sxf086320@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: delphij Date: Sat Mar 28 06:05:53 2009 New Revision: 190486 URL: http://svn.freebsd.org/changeset/base/190486 Log: Use pread(2) and pwrite(2) instead of lseek(2) + read(2) / write(2). Obtained from: NetBSD via OpenBSD Modified: head/lib/libc/db/hash/hash.c head/lib/libc/db/hash/hash_page.c Modified: head/lib/libc/db/hash/hash.c ============================================================================== --- head/lib/libc/db/hash/hash.c Sat Mar 28 05:57:27 2009 (r190485) +++ head/lib/libc/db/hash/hash.c Sat Mar 28 06:05:53 2009 (r190486) @@ -495,8 +495,7 @@ flush_meta(HTAB *hashp) whdrp = &whdr; swap_header_copy(&hashp->hdr, whdrp); #endif - if ((lseek(fp, (off_t)0, SEEK_SET) == -1) || - ((wsize = _write(fp, whdrp, sizeof(HASHHDR))) == -1)) + if ((wsize = pwrite(fp, whdrp, sizeof(HASHHDR), (off_t)0)) == -1) return (-1); else if (wsize != sizeof(HASHHDR)) { Modified: head/lib/libc/db/hash/hash_page.c ============================================================================== --- head/lib/libc/db/hash/hash_page.c Sat Mar 28 05:57:27 2009 (r190485) +++ head/lib/libc/db/hash/hash_page.c Sat Mar 28 06:05:53 2009 (r190486) @@ -520,8 +520,7 @@ __get_page(HTAB *hashp, char *p, u_int32 page = BUCKET_TO_PAGE(bucket); else page = OADDR_TO_PAGE(bucket); - if ((lseek(fd, (off_t)page << hashp->BSHIFT, SEEK_SET) == -1) || - ((rsize = _read(fd, p, size)) == -1)) + if ((rsize = pread(fd, p, size, (off_t)page << hashp->BSHIFT)) == -1) return (-1); bp = (u_int16_t *)p; if (!rsize) @@ -587,8 +586,7 @@ __put_page(HTAB *hashp, char *p, u_int32 page = BUCKET_TO_PAGE(bucket); else page = OADDR_TO_PAGE(bucket); - if ((lseek(fd, (off_t)page << hashp->BSHIFT, SEEK_SET) == -1) || - ((wsize = _write(fd, p, size)) == -1)) + if ((wsize = pwrite(fd, p, size, (off_t)page << hashp->BSHIFT)) == -1) /* Errno is set */ return (-1); if (wsize != size) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200903280605.n2S65sxf086320>