mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Simplify mpool_get() and mpool_write() by using pread() and pwrite()
instead of lseek()/_read() and lseek()/_write(). PR: bin/54276 Submitted by: <dnelson@allantgroup.com>
This commit is contained in:
parent
cf5d2c6934
commit
f4d140366a
1 changed files with 3 additions and 6 deletions
|
|
@ -207,9 +207,8 @@ mpool_get(mp, pgno, flags)
|
|||
++mp->pageread;
|
||||
#endif
|
||||
off = mp->pagesize * pgno;
|
||||
if (lseek(mp->fd, off, SEEK_SET) != off)
|
||||
return (NULL);
|
||||
if ((nr = _read(mp->fd, bp->page, mp->pagesize)) != mp->pagesize) {
|
||||
nr = pread(mp->fd, bp->page, mp->pagesize, off);
|
||||
if (nr != mp->pagesize) {
|
||||
if (nr >= 0)
|
||||
errno = EFTYPE;
|
||||
return (NULL);
|
||||
|
|
@ -381,9 +380,7 @@ mpool_write(mp, bp)
|
|||
(mp->pgout)(mp->pgcookie, bp->pgno, bp->page);
|
||||
|
||||
off = mp->pagesize * bp->pgno;
|
||||
if (lseek(mp->fd, off, SEEK_SET) != off)
|
||||
return (RET_ERROR);
|
||||
if (_write(mp->fd, bp->page, mp->pagesize) != mp->pagesize)
|
||||
if (pwrite(mp->fd, bp->page, mp->pagesize, off) != mp->pagesize)
|
||||
return (RET_ERROR);
|
||||
|
||||
bp->flags &= ~MPOOL_DIRTY;
|
||||
|
|
|
|||
Loading…
Reference in a new issue