.LC21:
	.string	"bdflush"
	.text
	.align 16
.globl bdflush
	.type	bdflush,@function
bdflush:
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	movl	$-8192, %ebx
#APP
	andl %esp,%ebx; 
#NO_APP
	subl	$16, %esp
	movl	$1, 120(%ebx)
	movl	$1, 112(%ebx)
	leal	562(%ebx), %edi
	movl	$.LC21, %esi
#APP
	1:	lodsb
	stosb
	testb %al,%al
	jne 1b
#NO_APP
	movl	%ebx, bdflush_tsk
#APP
	cli
#NO_APP
	pushl	%ebx
	call	flush_signals
	popl	%esi
	movl	$-1, 1364(%ebx)
	movl	$-1, 1360(%ebx)
	movl	$0, 8(%ebx)
#APP
	sti
#NO_APP
	movl	32(%esp), %ecx
#APP
	# atomic up operation
	incl (%ecx)
	jle 2f
1:
.section .text.lock,"ax"
2:	call __up_wakeup
	jmp 1b
.previous
	.p2align 4
#NO_APP
.L2262:
	movl	emergency_sync_scheduled, %ecx
	testl	%ecx, %ecx
	je	.L2265
	call	do_emergency_sync
.L2265:
	pushl	$0
	call	flush_dirty_buffers
	movl	%eax, %esi
	call	free_shortage
	testl	%eax, %eax
	popl	%edx
	je	.L2266
	pushl	$0
	pushl	$3
	call	page_launder
	popl	%edi
	addl	%eax, %esi
	popl	%eax
.L2266:
	xorl	%ecx, %ecx
	movl	$1, (%ebx)
	movl	$3, %edx
	movl	$bdflush_done, %eax
	call	__wake_up
	testl	%esi, %esi
	je	.L2270
	pushl	$0
	call	balance_dirty_state
	testl	%eax, %eax
	popl	%ecx
	js	.L2270
.L2269:
	movl	$0, (%ebx)
	jmp	.L2262
	.p2align 4
.L2270:
	cmpl	$tq_disk, tq_disk
	jne	.L2275
.L2272:
	call	schedule
	jmp	.L2269
	.p2align 4
.L2275:
	pushl	$tq_disk
	call	__run_task_queue
	popl	%edx
	jmp	.L2272
.Lfe70:
	.size	bdflush,.Lfe70-bdflush
	.section	.rodata
.LC22:
	.string	"kupdate"
	.text
	.align 16
.globl kupdate
	.type	kupdate,@function
kupdate:
	pushl	%ebp
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	movl	$-8192, %ebx
#APP
	andl %esp,%ebx; 
#NO_APP
	movl	20(%esp), %ecx
	movl	%ebx, %ebp
	movl	$1, 120(%ebx)
	movl	$1, 112(%ebx)
	leal	562(%ebx), %edi
	movl	$.LC22, %esi
#APP
	1:	lodsb
	stosb
	testb %al,%al
	jne 1b
	cli
#NO_APP
	leal	1360(%ebx), %edx
	movl	$-393217, 1360(%ebx)
	movl	$-1, 1364(%ebx)
	xorl	%eax, %eax
	testl	$393216, 1376(%ebx)
	setne	%al
	movl	%eax, 8(%ebx)
#APP
	sti
	# atomic up operation
	incl (%ecx)
	jle 2f
1:
.section .text.lock,"ax"
2:	call __up_wakeup
	jmp 1b
.previous
#NO_APP
	movl	%edx, %edi
	.p2align 4
.L2290:
	movl	bdf_prm+16, %eax
	testl	%eax, %eax
	je	.L2295
	movl	$1, (%ebx)
	call	schedule_timeout
.L2294:
	movl	8(%ebx), %eax
	testl	%eax, %eax
	je	.L2296
	xorl	%esi, %esi
#APP
	cli
#NO_APP
	testb	$4, 1378(%ebx) 
	je	.L2299
#APP
	btrl $18,1376(%ebp)
#NO_APP
	movl	$1, %esi
.L2299:
	movl	4(%edi), %eax
	movl	(%edi), %edx
	notl	%eax
	notl	%edx
	andl	1380(%ebp), %eax
	andl	1376(%ebp), %edx
	xorl	%ecx, %ecx
	orl	%edx, %eax
	setne	%cl
	movl	%ecx, 8(%ebx)
#APP
	sti
#NO_APP
	testl	%esi, %esi
	je	.L2296
.L2295:
	movl	$8, (%ebx)
	call	schedule
	jmp	.L2294
	.p2align 4
.L2296:
	call	sync_old_buffers
	jmp	.L2290
.Lfe71:
	.size	kupdate,.Lfe71-kupdate
	.section	.text.init,"ax",@progbits
	.align 16
	.type	bdflush_init,@function
bdflush_init:
	pushl	%edi
	pushl	%esi
	pushl	%ebx
	subl	$64, %esp
	leal	32(%esp), %ebx
	leal	12(%ebx), %eax
	movl	$0, (%esp)
	movl	$0, 4(%esp)
	movl	$0, 8(%esp)
	movl	%eax, 12(%esp)
	movl	%eax, 16(%esp)
	movl	%esp, %esi
	cld
	movl	%ebx, %edi
	movl	$5, %ecx
	rep
	movsl
	pushl	$69120
	pushl	%ebx
	pushl	$bdflush
	call	kernel_thread
	addl	$12, %esp
	movl	%ebx, %ecx
#APP
	# atomic down operation
	decl (%ecx)
	js 2f
1:
.section .text.lock,"ax"
2:	call __down_failed
	jmp 1b
.previous
#NO_APP
	pushl	$69120
	pushl	%ebx
	pushl	$kupdate
	call	kernel_thread
	addl	$76, %esp
	movl	%ebx, %ecx
#APP
	# atomic down operation
	decl (%ecx)
	js 2f
1:
.section .text.lock,"ax"
2:	call __down_failed
	jmp 1b
.previous
#NO_APP
	popl	%ebx
	xorl	%eax, %eax
	popl	%esi
	popl	%edi
	ret
.Lfe72:
	.size	bdflush_init,.Lfe72-bdflush_init
	.section	.initcall.init,"aw",@progbits
	.align 4
	.type	__initcall_bdflush_init,@object
	.size	__initcall_bdflush_init,4
__initcall_bdflush_init:
	.long	bdflush_init
	.local	bh_hash_mask
	.comm	bh_hash_mask,4,4
	.local	bh_hash_shift
	.comm	bh_hash_shift,4,4
	.local	hash_table
	.comm	hash_table,4,4
	.local	lru_list
	.comm	lru_list,16,4
	.local	nr_buffers_type
	.comm	nr_buffers_type,16,4
	.local	size_buffers_type
	.comm	size_buffers_type,16,4
	.local	unused_list
	.comm	unused_list,4,4
	.local	nr_unused_buffer_heads
	.comm	nr_unused_buffer_heads,4,4
	.local	free_list
	.comm	free_list,56,32
	.ident	"GCC: (GNU) 2.97 20001222 (experimental)"
