From owner-freebsd-stable@FreeBSD.ORG Wed Dec 27 09:11:49 2006 Return-Path: X-Original-To: stable@freebsd.org Delivered-To: freebsd-stable@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B5FC716A403 for ; Wed, 27 Dec 2006 09:11:49 +0000 (UTC) (envelope-from dmitry@atlantis.dp.ua) Received: from postman.atlantis.dp.ua (postman.atlantis.dp.ua [193.108.47.1]) by mx1.freebsd.org (Postfix) with ESMTP id 1257613C46E for ; Wed, 27 Dec 2006 09:11:48 +0000 (UTC) (envelope-from dmitry@atlantis.dp.ua) Received: from smtp.atlantis.dp.ua (smtp.atlantis.dp.ua [193.108.46.231]) by postman.atlantis.dp.ua (8.13.1/8.13.1) with ESMTP id kBR9BhYq014230; Wed, 27 Dec 2006 11:11:44 +0200 (EET) (envelope-from dmitry@atlantis.dp.ua) Date: Wed, 27 Dec 2006 11:11:43 +0200 (EET) From: Dmitry Pryanishnikov To: Luigi Rizzo In-Reply-To: <20061226064831.B48751@xorpc.icir.org> Message-ID: <20061227102328.A39278@atlantis.atlantis.dp.ua> References: <20061221092717.A6431@xorpc.icir.org> <20061222073857.GA10704@tmn.ru> <20061225165735.M22401@atlantis.atlantis.dp.ua> <20061225084704.A23448@xorpc.icir.org> <4590066B.8050604@samsco.org> <20061226064831.B48751@xorpc.icir.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: stable@freebsd.org, sos@freebsd.org Subject: Re: [summary] Re: burncd 'blank' not terminating ? X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Dec 2006 09:11:49 -0000 Hello! On Tue, 26 Dec 2006, Luigi Rizzo wrote: > I suggest the following two fixes: > 1. change burncd.c as below, so that if CDRIOCGETPROGRESS does not return > anything good, it calls CDIOCRESET to determine when the command > is complete. > This can be improved by calling CDIOCRESET unconditionally as a > termination test > > 2. change atapi-cd.c to return something even if ATA_SENSE_VALID is > unset. Apparently there is a lot of non-complying hardware around > so restricting to what the spec says is like shooting ourselves > in the foot. > Again, if burncd.c uses CDIOCRESET to determine the completion > of the 'blank' operation, we don't care if the return value from > CDRIOCGETPROGRESS is incorrect, because we don't rely on it. > > Patches below (to be improved to make CDIOCRESET unconditional). > Does this satisfy all ? Thanks, Luigi, you rule OK! As I've said before, atapi-cd.c part of these changes seems to be effectively NOOP with my TEAC's drive acd0: CDRW at ata1-master UDMA33 But burncd.c patch definitely works! It's output is somehow ugly: root@lion# burncd -f /dev/acd0 -s 10 blank blanking CD - 17sec 0 % done -1 (interim status) blanking CD - 39sec 0 % done 0 (final status) root@lion# but the operation finishes w/o pressing Ctrl-C. Now I can use aggregate commands such as 'blank data xxx fixate': root@lion# burncd -f /dev/acd0 -s 10 blank data memtest86+-1.65.iso fixate blanking CD - 39sec 0 % done 0 next writeable LBA 0 writing from file memtest86+-1.65.iso size 900 KB written this track 900 KB (100%) total 900 KB fixating CD, please wait.. burncd: ioctl(CDRIOCFIXATE): Input/output error root@lion# Fixate still issues 'ioctl(CDRIOCFIXATE): Input/output error', but AFAICT the resulting media is OK. Thank you again for digging this problem! > cheers > luigi Sincerely, Dmitry -- Atlantis ISP, System Administrator e-mail: dmitry@atlantis.dp.ua nic-hdl: LYNX-RIPE