vm_pager.h (116695) | vm_pager.h (116710) |
---|---|
1/* 2 * Copyright (c) 1990 University of Utah. 3 * Copyright (c) 1991, 1993 4 * The Regents of the University of California. All rights reserved. 5 * 6 * This code is derived from software contributed to Berkeley by 7 * the Systems Programming Group of the University of Utah Computer 8 * Science Department. --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)vm_pager.h 8.4 (Berkeley) 1/12/94 | 1/* 2 * Copyright (c) 1990 University of Utah. 3 * Copyright (c) 1991, 1993 4 * The Regents of the University of California. All rights reserved. 5 * 6 * This code is derived from software contributed to Berkeley by 7 * the Systems Programming Group of the University of Utah Computer 8 * Science Department. --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)vm_pager.h 8.4 (Berkeley) 1/12/94 |
39 * $FreeBSD: head/sys/vm/vm_pager.h 116695 2003-06-22 21:35:41Z alc $ | 39 * $FreeBSD: head/sys/vm/vm_pager.h 116710 2003-06-23 06:15:05Z alc $ |
40 */ 41 42/* 43 * Pager routine interface definition. 44 */ 45 46#ifndef _VM_PAGER_ 47#define _VM_PAGER_ --- 66 unchanged lines hidden (view full) --- 114 */ 115static __inline int 116vm_pager_get_pages( 117 vm_object_t object, 118 vm_page_t *m, 119 int count, 120 int reqpage 121) { | 40 */ 41 42/* 43 * Pager routine interface definition. 44 */ 45 46#ifndef _VM_PAGER_ 47#define _VM_PAGER_ --- 66 unchanged lines hidden (view full) --- 114 */ 115static __inline int 116vm_pager_get_pages( 117 vm_object_t object, 118 vm_page_t *m, 119 int count, 120 int reqpage 121) { |
122 int is_object_locked; | |
123 int r; 124 | 122 int r; 123 |
125 if (!(is_object_locked = VM_OBJECT_LOCKED(object))) 126 VM_OBJECT_LOCK(object); | 124 VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); |
127 r = (*pagertab[object->type]->pgo_getpages)(object, m, count, reqpage); 128 if (r == VM_PAGER_OK && m[reqpage]->valid != VM_PAGE_BITS_ALL) { 129 vm_page_zero_invalid(m[reqpage], TRUE); 130 } | 125 r = (*pagertab[object->type]->pgo_getpages)(object, m, count, reqpage); 126 if (r == VM_PAGER_OK && m[reqpage]->valid != VM_PAGE_BITS_ALL) { 127 vm_page_zero_invalid(m[reqpage], TRUE); 128 } |
131 if (!is_object_locked) 132 VM_OBJECT_UNLOCK(object); | |
133 return (r); 134} 135 136static __inline void 137vm_pager_put_pages( 138 vm_object_t object, 139 vm_page_t *m, 140 int count, --- 50 unchanged lines hidden --- | 129 return (r); 130} 131 132static __inline void 133vm_pager_put_pages( 134 vm_object_t object, 135 vm_page_t *m, 136 int count, --- 50 unchanged lines hidden --- |