	.file	"extr_rdwr.c_cachefiles_read_backing_file_one.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	""
.LC1:
	.string	"read back %p{%lu,%d}"
.LC2:
	.string	"- present"
.LC3:
	.string	"- new %p"
.LC4:
	.string	"read error %d"
.LC5:
	.string	"- monitor add"
.LC6:
	.string	"jumpstart %p {%lx}"
.LC7:
	.string	"success"
.LC8:
	.string	"- uptodate"
.LC9:
	.string	"read %p {%lx}"
.LC10:
	.string	" = %d"
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC11:
	.string	"Page read error on backing file"
	.section	.rodata.str1.1
.LC12:
	.string	" = -ENOMEM"
	.text
	.p2align 4
	.type	cachefiles_read_backing_file_one, @function
cachefiles_read_backing_file_one:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	mov	r15, rcx
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	mov	r14, rsi
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	mov	r12, rdx
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	mov	rbx, rdi
	sub	rsp, 40
	.cfi_def_cfa_offset 96
	mov	QWORD PTR 8[rsp], rdi
	lea	rdi, .LC0[rip]
	call	_enter@PLT
	mov	rdi, r15
	call	pagevec_reinit@PLT
	mov	rdi, r12
	call	page_count@PLT
	mov	edx, DWORD PTR 4[r12]
	mov	rsi, r12
	lea	rdi, .LC1[rip]
	mov	ecx, eax
	xor	eax, eax
	call	_debug@PLT
	mov	esi, DWORD PTR cachefiles_gfp[rip]
	mov	edi, 32
	call	kzalloc@PLT
	test	rax, rax
	je	.L2
	mov	QWORD PTR 24[rax], r12
	mov	rdi, r14
	mov	r13, rax
	xor	ebp, ebp
	call	fscache_get_retrieval@PLT
	mov	esi, DWORD PTR cachefiles_read_waiter[rip]
	mov	DWORD PTR 0[r13], eax
	lea	rax, 8[r13]
	mov	rdi, rax
	mov	QWORD PTR 16[rsp], rax
	call	init_waitqueue_func_entry@PLT
	mov	rax, QWORD PTR [rbx]
	mov	rax, QWORD PTR [rax]
	mov	rbx, QWORD PTR [rax]
	jmp	.L10
	.p2align 4,,10
	.p2align 3
.L6:
	mov	edx, DWORD PTR 4[r12]
	mov	rsi, rbx
	mov	rdi, rbp
	call	add_to_page_cache@PLT
	test	eax, eax
	je	.L30
	add	eax, DWORD PTR EEXIST[rip]
	jne	.L31
.L10:
	mov	esi, DWORD PTR 4[r12]
	mov	rdi, rbx
	call	find_get_page@PLT
	test	rax, rax
	jne	.L32
	mov	ecx, DWORD PTR cachefiles_gfp[rip]
	test	rbp, rbp
	jne	.L6
	or	ecx, DWORD PTR __GFP_COLD[rip]
	mov	edi, ecx
	call	__page_cache_alloc@PLT
	mov	rbp, rax
	test	rax, rax
	je	.L7
	mov	ecx, DWORD PTR cachefiles_gfp[rip]
	jmp	.L6
	.p2align 4,,10
	.p2align 3
.L31:
	mov	rdi, rbp
	call	page_cache_release@PLT
.L7:
	mov	edi, DWORD PTR 0[r13]
	call	fscache_put_retrieval@PLT
	mov	rdi, r13
	call	kfree@PLT
.L2:
	mov	esi, 1
	mov	rdi, r14
	call	fscache_retrieval_complete@PLT
	lea	rdi, .LC12[rip]
	xor	eax, eax
	call	_leave@PLT
	mov	r12d, DWORD PTR ENOMEM[rip]
	neg	r12d
.L1:
	add	rsp, 40
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	mov	eax, r12d
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L32:
	.cfi_restore_state
	mov	QWORD PTR 24[rsp], rax
	lea	rdi, .LC2[rip]
	xor	eax, eax
	call	_debug@PLT
	test	rbp, rbp
	mov	r8, QWORD PTR 24[rsp]
	je	.L5
	mov	rdi, rbp
	mov	QWORD PTR 24[rsp], r8
	call	page_cache_release@PLT
	mov	r8, QWORD PTR 24[rsp]
.L5:
	mov	rdi, r8
	mov	QWORD PTR 24[rsp], r8
	call	PageError@PLT
	mov	r8, QWORD PTR 24[rsp]
	test	rax, rax
	je	.L33
.L13:
	mov	rdi, QWORD PTR 8[rsp]
	lea	rsi, .LC11[rip]
	mov	QWORD PTR 16[rsp], r8
	call	cachefiles_io_error_obj@PLT
	mov	esi, 1
	mov	rdi, r14
	call	fscache_retrieval_complete@PLT
	mov	r12d, DWORD PTR ENOBUFS[rip]
	mov	r8, QWORD PTR 16[rsp]
	neg	r12d
.L17:
	mov	rdi, r8
	call	page_cache_release@PLT
	mov	edi, DWORD PTR 0[r13]
	call	fscache_put_retrieval@PLT
	mov	rdi, r13
	call	kfree@PLT
	jmp	.L15
	.p2align 4,,10
	.p2align 3
.L30:
	mov	rsi, rbp
	lea	rdi, .LC3[rip]
	call	_debug@PLT
	mov	rdi, rbp
	call	page_cache_get@PLT
	mov	rdi, r15
	mov	rsi, rbp
	call	pagevec_add@PLT
	mov	rdi, r15
	call	__pagevec_lru_add_file@PLT
.L9:
	mov	rax, QWORD PTR [rbx]
	mov	rsi, rbp
	xor	edi, edi
	call	[QWORD PTR [rax]]
	mov	r12d, eax
	test	eax, eax
	js	.L34
.L11:
	lea	rdi, .LC5[rip]
	xor	eax, eax
	call	_debug@PLT
	mov	rdi, QWORD PTR 24[r13]
	call	page_cache_get@PLT
	mov	rdi, rbp
	call	page_cache_get@PLT
	mov	QWORD PTR 16[r13], rbp
	mov	rsi, QWORD PTR 16[rsp]
	mov	rdi, rbp
	mov	QWORD PTR 8[r13], rbp
	call	add_page_wait_queue@PLT
	mov	rdi, rbp
	call	trylock_page@PLT
	test	rax, rax
	jne	.L35
.L14:
	lea	rdi, .LC7[rip]
	xor	eax, eax
	xor	r12d, r12d
	call	_debug@PLT
	mov	rdi, rbp
	call	page_cache_release@PLT
.L15:
	mov	esi, r12d
	lea	rdi, .LC10[rip]
	xor	eax, eax
	call	_leave@PLT
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L33:
	mov	rdi, r8
	call	PageUptodate@PLT
	mov	r8, QWORD PTR 24[rsp]
	test	rax, rax
	jne	.L36
	mov	rdi, r8
	mov	QWORD PTR 24[rsp], r8
	call	trylock_page@PLT
	mov	r8, QWORD PTR 24[rsp]
	mov	rbp, r8
	test	rax, rax
	je	.L11
	mov	edx, DWORD PTR [r8]
	mov	rsi, r8
	lea	rdi, .LC9[rip]
	xor	eax, eax
	call	_debug@PLT
	jmp	.L9
.L35:
	mov	edx, DWORD PTR 0[rbp]
	mov	rsi, rbp
	lea	rdi, .LC6[rip]
	xor	eax, eax
	call	_debug@PLT
	mov	rdi, rbp
	call	unlock_page@PLT
	jmp	.L14
.L34:
	mov	esi, eax
	lea	rdi, .LC4[rip]
	xor	eax, eax
	call	_debug@PLT
	mov	eax, r12d
	add	eax, DWORD PTR ENOMEM[rip]
	je	.L12
	mov	r8, rbp
	jmp	.L13
.L12:
	mov	esi, 1
	mov	rdi, r14
	call	fscache_retrieval_complete@PLT
	mov	r8, rbp
	jmp	.L17
.L36:
	lea	rdi, .LC8[rip]
	xor	eax, eax
	mov	QWORD PTR 8[rsp], r8
	call	_debug@PLT
	mov	edx, 1
	mov	rsi, r12
	mov	rdi, r14
	call	fscache_mark_page_cached@PLT
	mov	r8, QWORD PTR 8[rsp]
	mov	rdi, r12
	mov	rsi, r8
	call	copy_highpage@PLT
	xor	edx, edx
	mov	rsi, r12
	mov	rdi, r14
	call	fscache_end_io@PLT
	mov	esi, 1
	mov	rdi, r14
	xor	r12d, r12d
	call	fscache_retrieval_complete@PLT
	lea	rdi, .LC7[rip]
	xor	eax, eax
	call	_debug@PLT
	mov	r8, QWORD PTR 8[rsp]
	jmp	.L17
	.cfi_endproc
.LFE0:
	.size	cachefiles_read_backing_file_one, .-cachefiles_read_backing_file_one
	.comm	cachefiles_read_waiter,4,4
	.comm	cachefiles_gfp,4,4
	.comm	__GFP_COLD,4,4
	.comm	ENOMEM,4,4
	.comm	ENOBUFS,4,4
	.comm	EEXIST,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_rdwr.c_cachefiles_read_backing_file_one.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"\000"
	.align	2
.LC1:
	.ascii	"read back %p{%lu,%d}\000"
	.align	2
.LC2:
	.ascii	"- present\000"
	.align	2
.LC3:
	.ascii	"- new %p\000"
	.align	2
.LC4:
	.ascii	"read error %d\000"
	.align	2
.LC5:
	.ascii	"- monitor add\000"
	.align	2
.LC6:
	.ascii	"jumpstart %p {%lx}\000"
	.align	2
.LC7:
	.ascii	"success\000"
	.align	2
.LC8:
	.ascii	"- uptodate\000"
	.align	2
.LC9:
	.ascii	"read %p {%lx}\000"
	.align	2
.LC10:
	.ascii	" = %d\000"
	.align	2
.LC11:
	.ascii	"Page read error on backing file\000"
	.align	2
.LC12:
	.ascii	" = -ENOMEM\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	cachefiles_read_backing_file_one, %function
cachefiles_read_backing_file_one:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	mov	ip, r0
	mov	r4, r3
	mov	r5, r2
	sub	sp, sp, #20
	ldr	r0, .L37
	mov	r6, ip
	str	ip, [sp, #8]
	mov	r10, r1
	str	r3, [sp, #4]
	bl	_enter
	mov	r0, r4
	bl	pagevec_reinit
	mov	r0, r5
	ldr	r4, [r5, #4]
	bl	page_count
	ldr	r7, .L37+4
	mov	r3, r0
	mov	r2, r4
	mov	r1, r5
	ldr	r0, .L37+8
	bl	_debug
	mov	r0, #16
	ldr	r1, [r7]
	bl	kzalloc
	subs	r9, r0, #0
	beq	.L2
	mov	r0, r10
	str	r5, [r9, #12]
	bl	fscache_get_retrieval
	mov	r2, r9
	ldr	r3, .L37+12
	str	r0, [r2], #4
	ldr	r1, [r3]
	mov	r0, r2
	str	r2, [sp, #12]
	bl	init_waitqueue_func_entry
	ldr	r3, [r6]
	mov	r4, #0
	ldr	r3, [r3]
	ldr	fp, .L37+16
	ldr	r8, .L37+20
	ldr	r6, [r3]
	b	.L10
.L6:
	mov	r1, r6
	mov	r0, r4
	ldr	r2, [r5, #4]
	bl	add_to_page_cache
	cmp	r0, #0
	beq	.L30
	ldr	r3, [r8]
	cmn	r0, r3
	bne	.L31
.L10:
	mov	r0, r6
	ldr	r1, [r5, #4]
	bl	find_get_page
	cmp	r0, #0
	bne	.L32
	cmp	r4, #0
	ldr	r3, [r7]
	bne	.L6
	ldr	r0, [fp]
	orr	r0, r3, r0
	bl	__page_cache_alloc
	subs	r4, r0, #0
	beq	.L7
	ldr	r3, [r7]
	b	.L6
.L31:
	mov	r0, r4
	bl	page_cache_release
.L7:
	ldr	r0, [r9]
	bl	fscache_put_retrieval
	mov	r0, r9
	bl	kfree
.L2:
	mov	r1, #1
	mov	r0, r10
	bl	fscache_retrieval_complete
	ldr	r0, .L37+24
	bl	_leave
	ldr	r3, .L37+28
	ldr	r7, [r3]
	rsb	r7, r7, #0
	mov	r0, r7
	add	sp, sp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L32:
	str	r0, [sp, #4]
	ldr	r0, .L37+32
	bl	_debug
	cmp	r4, #0
	ldr	r3, [sp, #4]
	beq	.L5
	mov	r0, r4
	str	r3, [sp, #4]
	bl	page_cache_release
	ldr	r3, [sp, #4]
.L5:
	mov	r0, r3
	str	r3, [sp, #4]
	bl	PageError
	subs	r7, r0, #0
	ldr	r3, [sp, #4]
	beq	.L33
.L13:
	ldr	r1, .L37+36
	ldr	r0, [sp, #8]
	str	r3, [sp, #4]
	bl	cachefiles_io_error_obj
	mov	r0, r10
	mov	r1, #1
	bl	fscache_retrieval_complete
	ldr	r2, .L37+40
	ldr	r3, [sp, #4]
	ldr	r7, [r2]
	rsb	r7, r7, #0
.L17:
	mov	r0, r3
	bl	page_cache_release
	ldr	r0, [r9]
	bl	fscache_put_retrieval
	mov	r0, r9
	bl	kfree
	b	.L15
.L30:
	mov	r1, r4
	ldr	r0, .L37+44
	bl	_debug
	mov	r0, r4
	bl	page_cache_get
	ldr	r5, [sp, #4]
	mov	r1, r4
	mov	r0, r5
	bl	pagevec_add
	mov	r0, r5
	bl	__pagevec_lru_add_file
.L9:
	ldr	r3, [r6]
	mov	r1, r4
	mov	r0, #0
	ldr	r3, [r3]
	blx	r3
	subs	r7, r0, #0
	blt	.L34
.L11:
	ldr	r0, .L37+48
	bl	_debug
	ldr	r0, [r9, #12]
	bl	page_cache_get
	mov	r0, r4
	bl	page_cache_get
	ldr	r1, [sp, #12]
	mov	r0, r4
	str	r4, [r9, #8]
	str	r4, [r9, #4]
	bl	add_page_wait_queue
	mov	r0, r4
	bl	trylock_page
	subs	r7, r0, #0
	bne	.L35
	ldr	r0, .L37+52
	bl	_debug
	mov	r0, r4
	bl	page_cache_release
.L15:
	mov	r1, r7
	ldr	r0, .L37+56
	bl	_leave
	mov	r0, r7
	add	sp, sp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L33:
	mov	r0, r3
	bl	PageUptodate
	cmp	r0, #0
	ldr	r3, [sp, #4]
	bne	.L36
	mov	r0, r3
	str	r3, [sp, #4]
	bl	trylock_page
	ldr	r3, [sp, #4]
	cmp	r0, #0
	moveq	r4, r3
	beq	.L11
	mov	r1, r3
	ldr	r2, [r3]
	ldr	r0, .L37+60
	mov	r4, r3
	bl	_debug
	b	.L9
.L35:
	mov	r1, r4
	ldr	r2, [r4]
	ldr	r0, .L37+64
	bl	_debug
	mov	r0, r4
	bl	unlock_page
	ldr	r0, .L37+52
	bl	_debug
	mov	r0, r4
	bl	page_cache_release
	mov	r7, #0
	b	.L15
.L34:
	mov	r1, r7
	ldr	r0, .L37+68
	bl	_debug
	ldr	r3, .L37+28
	ldr	r3, [r3]
	cmn	r7, r3
	movne	r3, r4
	bne	.L13
	mov	r0, r10
	mov	r1, #1
	str	r4, [sp, #4]
	bl	fscache_retrieval_complete
	ldr	r3, [sp, #4]
	b	.L17
.L36:
	ldr	r0, .L37+72
	bl	_debug
	mov	r2, #1
	mov	r1, r5
	mov	r0, r10
	bl	fscache_mark_page_cached
	ldr	r3, [sp, #4]
	mov	r0, r5
	mov	r1, r3
	bl	copy_highpage
	mov	r2, r7
	mov	r1, r5
	mov	r0, r10
	bl	fscache_end_io
	mov	r1, #1
	mov	r0, r10
	bl	fscache_retrieval_complete
	ldr	r0, .L37+52
	bl	_debug
	ldr	r3, [sp, #4]
	b	.L17
.L38:
	.align	2
.L37:
	.word	.LC0
	.word	cachefiles_gfp
	.word	.LC1
	.word	cachefiles_read_waiter
	.word	__GFP_COLD
	.word	EEXIST
	.word	.LC12
	.word	ENOMEM
	.word	.LC2
	.word	.LC11
	.word	ENOBUFS
	.word	.LC3
	.word	.LC5
	.word	.LC7
	.word	.LC10
	.word	.LC9
	.word	.LC6
	.word	.LC4
	.word	.LC8
	.size	cachefiles_read_backing_file_one, .-cachefiles_read_backing_file_one
	.comm	cachefiles_read_waiter,4,4
	.comm	cachefiles_gfp,4,4
	.comm	__GFP_COLD,4,4
	.comm	ENOMEM,4,4
	.comm	ENOBUFS,4,4
	.comm	EEXIST,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
