summaryrefslogtreecommitdiffstats
path: root/usr.bin/bmake/unit-tests/Makefile
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2013-02-03 18:42:20 +0000
committeravg <avg@FreeBSD.org>2013-02-03 18:42:20 +0000
commit2d2c37fb592dfc24f15e4bf14c2f109b5d4b5a83 (patch)
treebc9a1185a932272aeef027bc9847f8ba23b2aa56 /usr.bin/bmake/unit-tests/Makefile
parent1858329b43a5e7ea4bd21fc00d9a153c6878f21f (diff)
downloadFreeBSD-src-2d2c37fb592dfc24f15e4bf14c2f109b5d4b5a83.zip
FreeBSD-src-2d2c37fb592dfc24f15e4bf14c2f109b5d4b5a83.tar.gz
zfs: fix, improve and re-organize page_lookup and page_unlock
Now they are split into two pairs: page_hold/page_unhold for mappedread and page_busy/page_unbusy for update_pages. For mappedread we simply hold a page that is to be used as a source if it is resident and valid (and not busy). This is sufficient since we are only doing page -> user buffer copying. There is no page <-> backing storage I/O involved. update_pages is now better split to properly handle the putpages case (page -> arc) and the regular write case (arc -> page). For the latter we use complete protocol of marking an object with paging-in-progress and marking a page with io_start (busy count). Also, in this case we remove the write bit from all page mappings and clear dirty bits of the pages, the former is needed to ensure that the latter does the right thing. Additionally we update a page if it is cached instead of just freeing it as was done before. This needs to be verified. A minor detail: ZFS-backed pages should always be either fully valid or fully invalid. Assert this and use simpler API that does not deal with sub-page blocks. Reviewed by: kib MFC after: 26 days
Diffstat (limited to 'usr.bin/bmake/unit-tests/Makefile')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud