From nobody@FreeBSD.org  Sat Feb 23 11:45:41 2008
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 6448F16A402
	for <freebsd-gnats-submit@FreeBSD.org>; Sat, 23 Feb 2008 11:45:41 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 4754513C448
	for <freebsd-gnats-submit@FreeBSD.org>; Sat, 23 Feb 2008 11:45:41 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.2/8.14.2) with ESMTP id m1NBh2WT046915
	for <freebsd-gnats-submit@FreeBSD.org>; Sat, 23 Feb 2008 11:43:02 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.2/8.14.1/Submit) id m1NBh2f4046914;
	Sat, 23 Feb 2008 11:43:02 GMT
	(envelope-from nobody)
Message-Id: <200802231143.m1NBh2f4046914@www.freebsd.org>
Date: Sat, 23 Feb 2008 11:43:02 GMT
From: Oliver Herold <oliver@akephalos.de>
To: freebsd-gnats-submit@FreeBSD.org
Subject: UDF (with DVD RAM) isn't mountable/readable
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         120989
>Category:       kern
>Synopsis:       [udf] [patch] UDF (with DVD RAM) isn't mountable/readable
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    scottl
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Feb 23 11:50:02 UTC 2008
>Closed-Date:    
>Last-Modified:  Mon Jul 19 06:40:08 UTC 2010
>Originator:     Oliver Herold
>Release:        FreeBSD 7 (RELENG_7)
>Organization:
>Environment:
FreeBSD asgard.home 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE #4: Fri Feb 22 22:06:18 CET 2008     acheron@asgard.home:/usr/obj/usr/src/sys/ASGARD  i386
>Description:
This is a persistent problem since FreeBSD 6.x. DVD RAM formatted media
with FAT or UFS as filesystems aren't a problem at all, but UDF (diverent
versions) isn't readable in FreeBSD.

mount_udf /dev/acd0 /cdrom results in mount_udf: /dev/acd0: Invalid argument

I tried it with different version of UDF and different operating systems
(Debian Etch/Windows XP and Mac OS X Leopard) but to no avail in FreeBSD.

Maybe the udfdump output of such a media is of some use:

UDF volume sets marked alive :
Volume set `0939115C UDF Volume Set` (1 volume) with 8193 partitions
	Partition number 8192 at device `/dev/cd0' session 0 from sector 272(+0) for 2236160 sectors
	Primary volume `UDF Volume` (part 1/1) created by implementator `*Microsoft Windows' 
		contains logical volume  ``
			mapping 0 on 8192 as direct recording data metadata


	retrieving logical volume dependencies
		Logical volume  `0939115C UDF Volume Set`:`UDF Volume`:``
			integrity
	TAG: descriptor 9, serial_num 61994 at sector 36, crc length 118 bytes
		Logical volume integrity descriptor
			Timestamp                            (2008 01 26 at 17:01:55.01.17.36)
			Integrity type                       closed
			Next integrety sequence at 0 for 0 bytes
			Next free unique file ID             139
			Length of implementation use area    46 bytes
			Number of partitions                 1
			Partition 0 : 335924 blocks free space out of 2236160 blocks
			Implemenator Id `*Apple Mac OS X UDF FS` (MacOS [03 01 02 00 00 00 ]) (flags=0)
			Number of files                      48
			Number of directories                6
			Minimum readversion                  UDFv 201
			Minimum writeversion                 UDFv 201
			Maximum writeversion                 UDFv 201


				marked closed at  (2008 01 26 at 17:01:55.01.17.36)
	TAG: descriptor 8, serial_num 61994 at sector 37, crc length 496 bytes
		Terminating descriptor

			supporting tables
	For partition mapping 0->8192

			fileset(s)
	Fileset descriptor extent at sector 0 within partion 0 for 2048 bytes
	TAG: descriptor 256, serial_num 61994 at sector 0, crc length 496 bytes
		Fileset descriptor
			Timestamp                          (2007 08 04 at 09:57:18.06.07.00)
			Interchange level                  3
			Max interchange level              3
			Charset lists                      1
			Max charset lists                  1
			Fileset number                     0
			Fileset descriptor number          0
			Logical volume id                  ``
			Fileset id                         `UDF Volume Set`
			Copyright file id                  ``
			Abstract file id                   ``
			DomainId `*OSTA UDF Compliant` (UDFv 201; no write protect ) (flags=0)
			Rootdir ICB found        at sector 153 within partion space 0 for 2048 bytes
			Next extend for fileset  at sector 0 within partion space 0 for 0 bytes
			Streamdir ICB found      at sector 0 within partion space 0 for 0 bytes


	TAG: descriptor 266, serial_num 61994 at sector 153, crc length 796 bytes
	Extended file entry
		ICB Prior direct entries recorded (excl.)   0
		ICB Strategy type                           4
		ICB Strategy type flags                     0 0
		ICB Maximum number of entries (non strat 4) 1
		ICB     indirect entries/depth              0
		ICB File type                               4
		ICB Parent ICB in logical block 0 of mapped partition 0
		ICB Flags                                   3
			File/directory information using : internal in the ICB
			File flags :
		Uid                                         -1
		Gid                                         -1
		Permissions                                 3def
		Link count                                  3
		Record format                               0
		Record display attributes                   0
		Record length                               0
		Information length                          596
		Object size                                 596
		Logical blocks recorded                     0
		Access time                                 (2008 01 26 at 17:01:52.37.77.10)
		Modification time                           (2008 01 26 at 17:01:52.37.77.14)
		Creation time                               (2007 08 04 at 10:57:18.06.07.00)
		Attribute time                              (2007 08 04 at 11:52:25.75.25.17)
		Checkpoint                                  1
		Extended attributes ICB at at sector 0 within partion space 0 for 0 bytes
		Streamdir ICB at at sector 0 within partion space 0 for 0 bytes
		Implementation `*Apple Mac OS X UDF FS` (MacOS [03 01 02 00 00 00 ]) (flags=0)
		UniqueID                                    0
		Length of extended attribute area           0
		Length of allocation descriptors            596
		Allocation descriptors : 

	 [ blob at internal blob here for 596 bytes ] 

			checking writable filesets
			used/freed space tables
	For partition mapping 0->8192
	Unalloced space bitmap
	TAG: descriptor 264, serial_num 61994 at sector 16, crc length 8 bytes
		Space bitmap
			Number of bits                      2236160
			Number of bytes                     279520
			Marked parts at :
				[00000014 - 00000015]    [00000155 - 00000157]    [00000172 - 00000172]    [00000181 - 00000183]
				[00000226 - 00000226]    [00000242 - 00000243]    [00000250 - 00000251]    [00000267 - 00000268]
				[00000280 - 00000280]    [00000282 - 00000287]    [00000289 - 00000290]    [00000294 - 00000303]
				[00000305 - 00000311]    [00000316 - 00022367]    [01922330 - 02236160]
		Free space found on this partition
			[00000014 - 00000015]   [00000155 - 00000157]   [00000172 - 00000172]   [00000181 - 00000183]   [00000226 - 00000226]   
			[00000242 - 00000243]   [00000250 - 00000251]   [00000267 - 00000268]   [00000280 - 00000280]   [00000282 - 00000287]   
			[00000289 - 00000290]   [00000294 - 00000303]   [00000305 - 00000311]   [00000316 - 00022367]   [01922330 - 02097147]   
			[02097148 - 02236159]   
		Physical partition's unallocated space : 687972352

UDF volume sets marked alive :
Volume set `0939115C UDF Volume Set` (1 volume) with 8193 partitions
	Partition number 8192 at device `/dev/cd0' session 0 from sector 272(+0) for 2236160 sectors
	Primary volume `UDF Volume` (part 1/1) created by implementator `*Microsoft Windows' 
		contains logical volume  ``
			mapping 0 on 8192 as direct recording data metadata




Resulting list of alive sets :

UDF volume sets marked alive :
Volume set `0939115C UDF Volume Set` (1 volume) with 8193 partitions
	Partition number 8192 at device `/dev/cd0' session 0 from sector 272(+0) for 2236160 sectors
	Primary volume `UDF Volume` (part 1/1) created by implementator `*Microsoft Windows' 
		contains logical volume  ``
			mapping 0 on 8192 as direct recording data metadata


Closing discs
Disc access statistics
	sector reads        148  (296 Kbyte)
	sector written        0  (0 Kbyte)
	switches              0
>How-To-Repeat:
mount_udf /dev/acd0 /cdrom results in mount_udf: /dev/acd0: Invalid argument
>Fix:
Not a real fix but an option:

I can mount UDF formatted DVD RAM media with sysutils/udfclient (option
fusefs):

udfclientfs /dev/cd0 /cdrom

and read/copy the content.
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-i386->freebsd-bugs 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Sat Feb 23 14:35:50 UTC 2008 
Responsible-Changed-Why:  
This does not sound i386-specific. 

I wonder if it is related to kern/120967? 

http://www.freebsd.org/cgi/query-pr.cgi?pr=120989 

From: Andriy Gapon <avg@icyb.net.ua>
To: bug-followup@FreeBSD.org, oliver@akephalos.de
Cc: Scott Long <scottl@freebsd.org>
Subject: Re: kern/120989: [udf] UDF (with DVD RAM) isn't mountable/readable
Date: Sun, 24 Feb 2008 00:24:21 +0200

 CC: Mark Linimon: no, it's not related.
 
 As a maintainer of sysutils/udfclient port and a guy who spent a lot of
 time on in-kernel UDF FS, I can tell that this problem is caused by
 FreeBSD fs/udf supporting only older UDF standards. Newer UDF features
 (>=2.00), like extended file entries, are not supported.
 
 So, I am not sure how to qualify this PR: a bug, a feature request, or ...
 One thing is for sure: FreeBSD UDF fs doesn't get attention that it
 actually needs.
 
 -- 
 Andriy Gapon
Responsible-Changed-From-To: freebsd-bugs->scottl 
Responsible-Changed-By: rwatson 
Responsible-Changed-When: Sat Mar 8 21:22:42 UTC 2008 
Responsible-Changed-Why:  
Assign to udf author Scott Long, who seems to be collecting udf PRs. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=120989 

From: Andriy Gapon <avg@icyb.net.ua>
To: bug-followup@FreeBSD.org, oliver@akephalos.de
Cc:  
Subject: Re: kern/120989: [udf] UDF (with DVD RAM) isn't mountable/readable
Date: Tue, 15 Apr 2008 22:08:53 +0300

 This is a multi-part message in MIME format.
 --------------010602090500050006060906
 Content-Type: text/plain; charset=UTF-8
 Content-Transfer-Encoding: 7bit
 
 
 Oliver,
 
 if you still have that disk around and have an opportunity to check it
 with FreeBSD, could you please try the patch attached?
 The patch is against RELENG_7 but it should apply cleanly to not so
 distant releases/branches.
 This patch contains larger fixes for various UDF problems and in
 addition it also contains very basic support for UDF 2.X. Technically
 speaking it adds support for Extended File Entry, but not anything else.
 
 Just in case, to apply the patch you need the following:
 1. FreeBSD sources :-)
 2. cd /usr/src
 3. patch -p1 < /path/to/the/patch
 4. cd sys/modules/udf
 5. make obj && make depend && make && make install
 6. kldload udf
 
 The above assumes that you use udf as module. If you have it built into
 kernel you then instead of 5 and 6 you would need to build the kernel
 and reboot.
 
 -- 
 Andriy Gapon
 
 --------------010602090500050006060906
 Content-Type: text/plain;
  name="udf.diff"
 Content-Transfer-Encoding: base64
 Content-Disposition: inline;
  filename="udf.diff"
 
 ZGlmZiAtLWdpdCBhL3N5cy9mcy91ZGYvZWNtYTE2Ny11ZGYuaCBiL3N5cy9mcy91ZGYvZWNt
 YTE2Ny11ZGYuaAppbmRleCAyZDc4NzU4Li43ZTY0YWMxIDEwMDY0NAotLS0gYS9zeXMvZnMv
 dWRmL2VjbWExNjctdWRmLmgKKysrIGIvc3lzL2ZzL3VkZi9lY21hMTY3LXVkZi5oCkBAIC00
 Miw3ICs0Miw4IEBAIGVudW0gewogCVRBR0lEX0xPR1ZPTF9JTlRFR1JJVFkgPSA5LAogCVRB
 R0lEX0ZTRCA9CQkyNTYsCiAJVEFHSURfRklEID0JCTI1NywKLQlUQUdJRF9GRU5UUlkgPQkJ
 MjYxCisJVEFHSURfRkVOVFJZID0JCTI2MSwKKwlUQUdJRF9FWFRGRU5UUlkgPQkyNjYKIH07
 CiAKIC8qIERlc2NyaXB0b3IgdGFnIFszLzcuMl0gKi8KQEAgLTM1NCw2ICszNTUsNTQgQEAg
 c3RydWN0IGZpbGVfZW50cnkgewogI2RlZmluZQlVREZfRkVOVFJZX1BFUk1fR1JQX01BU0sJ
 MHhFMAogI2RlZmluZQlVREZfRkVOVFJZX1BFUk1fT1dORVJfTUFTSwkweDFDMDAKIAorLyog
 RXh0ZW5kZWQgRmlsZSBFbnRyeSBbNC8xNC4xN10gKi8KK3N0cnVjdCBleHRmaWxlX2VudHJ5
 IHsKKwlzdHJ1Y3QgZGVzY190YWcJCXRhZzsKKwlzdHJ1Y3QgaWNiX3RhZwkJaWNidGFnOwor
 CXVpbnQzMl90CQl1aWQ7CisJdWludDMyX3QJCWdpZDsKKwl1aW50MzJfdAkJcGVybTsKKwl1
 aW50MTZfdAkJbGlua19jbnQ7CisJdWludDhfdAkJCXJlY19mb3JtYXQ7CisJdWludDhfdAkJ
 CXJlY19kaXNwX2F0dHI7CisJdWludDMyX3QJCXJlY19sZW47CisJdWludDY0X3QJCWluZl9s
 ZW47CisJdWludDY0X3QJCW9ial9zaXplOworCXVpbnQ2NF90CQlsb2dibGtzX3JlYzsKKwlz
 dHJ1Y3QgdGltZXN0YW1wCWF0aW1lOworCXN0cnVjdCB0aW1lc3RhbXAJbXRpbWU7CisJc3Ry
 dWN0IHRpbWVzdGFtcAljdGltZTsKKwlzdHJ1Y3QgdGltZXN0YW1wCWF0dHJ0aW1lOworCXVp
 bnQzMl90CQlja3BvaW50OworCXVpbnQzMl90CQlyZXNlcnZlZDE7CisJc3RydWN0IGxvbmdf
 YWQJCWV4X2F0dHJfaWNiOworCXN0cnVjdCBsb25nX2FkCQlzdHJlYW1kaXJfaWNiOworCXN0
 cnVjdCByZWdpZAkJaW1wX2lkOworCXVpbnQ2NF90CQl1bmlxdWVfaWQ7CisJdWludDMyX3QJ
 CWxfZWE7CS8qIExlbmd0aCBvZiBleHRlbmRlZCBhdHRyaWJ1dGUgYXJlYSAqLworCXVpbnQz
 Ml90CQlsX2FkOwkvKiBMZW5ndGggb2YgYWxsb2NhdGlvbiBkZXNjcmlwdG9ycyAqLworCXVp
 bnQ4X3QJCQlkYXRhWzFdOworfSBfX3BhY2tlZDsKKyNkZWZpbmUJVURGX0VYVEZFTlRSWV9T
 SVpFCTIxNgorLyogR2l2ZW4gYSBwb2ludGVyIHRvIGZpbGVfZW50cnkgb3IgZXh0ZmlsZV9l
 bnRyeSBvYmplY3QgYW5kIGEgZmllbGQgbmFtZQorICogdGhlIGZvbGxvd2luZyBtYWNybyBw
 cm9kdWNlcyBhIGZpZWxkIG9mIGEgY29ycmVjdGx5IHR5cGVkIHN0cnVjdHVyZQorICogYmFz
 ZWQgb24gdGFnIGlkIG9mIHRoZSBlbnRyeS4KKyAqIFRoaXMgaXMgbm90IG5lZWRlZCBmb3Ig
 ZmllbGRzIHVwIHRvIGFuZCBpbmNsdWRpbmcgaW5mX2xlbiwgYnV0IGlzIGEgbXVzdAorICog
 Zm9yIGFsbCBmb2xsb3dpbmcgZmllbGRzLgorICogVGhpcyBtYWNybywgb2J2aW9zbHksIGNh
 biB3b3JrIG9ubHkgZm9yIGZpZWxkcyB0aGF0IGFyZSBwcmVzZW50IGluIGJvdGgKKyAqIHN0
 cnVjdHVyZSB0eXBlcy4KKyAqLworI2RlZmluZSBHRVRfRkVOVFJZX0ZJRUxEKGVudHJ5LCBm
 aWVsZCkJXAorCSgoZW50cnkpLT50YWcuaWQgPT0gVEFHSURfRkVOVFJZID8gXAorCSAgICAo
 KHN0cnVjdCBmaWxlX2VudHJ5ICopKGVudHJ5KSktPmZpZWxkIFwKKwkgICAgOiBcCisJICAg
 ICgoc3RydWN0IGV4dGZpbGVfZW50cnkgKikoZW50cnkpKS0+ZmllbGQpCisjZGVmaW5lIEdF
 VF9GRU5UUllfRklFTERfUFRSKGVudHJ5LCBmaWVsZCkJXAorCSgoZW50cnkpLT50YWcuaWQg
 PT0gVEFHSURfRkVOVFJZID8gXAorCSAgICAmKChzdHJ1Y3QgZmlsZV9lbnRyeSAqKShlbnRy
 eSkpLT5maWVsZCBcCisJICAgIDogXAorCSAgICAmKChzdHJ1Y3QgZXh0ZmlsZV9lbnRyeSAq
 KShlbnRyeSkpLT5maWVsZCkKKwogdW5pb24gZHNjcnB0ciB7CiAJc3RydWN0IGRlc2NfdGFn
 CQl0YWc7CiAJc3RydWN0IGFuY2hvcl92ZHAJYXZkcDsKQEAgLTM2NCwxMSArNDEzLDEyIEBA
 IHVuaW9uIGRzY3JwdHIgewogCXN0cnVjdCBmaWxlc2V0X2Rlc2MJZnNkOwogCXN0cnVjdCBm
 aWxlaWRfZGVzYwlmaWQ7CiAJc3RydWN0IGZpbGVfZW50cnkJZmU7CisJc3RydWN0IGV4dGZp
 bGVfZW50cnkJZWZlOwogfTsKIAogLyogVXNlZnVsIGRlZmluZXMgKi8KIAogI2RlZmluZQlH
 RVRJQ0IoYWRfdHlwZSwgZmVudHJ5LCBvZmZzZXQpCVwKLQkoc3RydWN0IGFkX3R5cGUgKikm
 ZmVudHJ5LT5kYXRhW29mZnNldF0KKwkoKHN0cnVjdCBhZF90eXBlICopR0VUX0ZFTlRSWV9G
 SUVMRF9QVFIoZmVudHJ5LCBkYXRhW29mZnNldF0pKQogCiAjZGVmaW5lCUdFVElDQkxFTihh
 ZF90eXBlLCBpY2IpCWxlMzJ0b2goKChzdHJ1Y3QgYWRfdHlwZSAqKShpY2IpKS0+bGVuKQpk
 aWZmIC0tZ2l0IGEvc3lzL2ZzL3VkZi91ZGZfdmZzb3BzLmMgYi9zeXMvZnMvdWRmL3VkZl92
 ZnNvcHMuYwppbmRleCA4NGQ2Nzc2Li40NTY4MDMxIDEwMDY0NAotLS0gYS9zeXMvZnMvdWRm
 L3VkZl92ZnNvcHMuYworKysgYi9zeXMvZnMvdWRmL3VkZl92ZnNvcHMuYwpAQCAtMzA4LDcg
 KzMwOCw3IEBAIHVkZl9tb3VudGZzKHN0cnVjdCB2bm9kZSAqZGV2dnAsIHN0cnVjdCBtb3Vu
 dCAqbXAsIHN0cnVjdCB0aHJlYWQgKnRkKSB7CiAJc3RydWN0IHBhcnRfZGVzYyAqcGQ7CiAJ
 c3RydWN0IGxvZ3ZvbF9kZXNjICpsdmQ7CiAJc3RydWN0IGZpbGVzZXRfZGVzYyAqZnNkOwot
 CXN0cnVjdCBmaWxlX2VudHJ5ICpyb290X2ZlbnRyeTsKKwlzdHJ1Y3QgZGVzY190YWcgKnJv
 b3RfdGFnOwogCXVpbnQzMl90IHNlY3Rvciwgc2l6ZSwgbXZkc19zdGFydCwgbXZkc19lbmQ7
 CiAJdWludDMyX3QgbG9naWNhbF9zZWNzaXplOwogCXVpbnQzMl90IGZzZF9vZmZzZXQgPSAw
 OwpAQCAtMzMwLDYgKzMzMCwxMSBAQCB1ZGZfbW91bnRmcyhzdHJ1Y3Qgdm5vZGUgKmRldnZw
 LCBzdHJ1Y3QgbW91bnQgKm1wLCBzdHJ1Y3QgdGhyZWFkICp0ZCkgewogCiAJYm8gPSAmZGV2
 dnAtPnZfYnVmb2JqOwogCisJaWYgKGRldnZwLT52X3JkZXYtPnNpX2lvc2l6ZV9tYXggIT0g
 MCkKKwkJbXAtPm1udF9pb3NpemVfbWF4ID0gZGV2dnAtPnZfcmRldi0+c2lfaW9zaXplX21h
 eDsKKwlpZiAobXAtPm1udF9pb3NpemVfbWF4ID4gTUFYUEhZUykKKwkJbXAtPm1udF9pb3Np
 emVfbWF4ID0gTUFYUEhZUzsKKwogCS8qIFhYWDogc2hvdWxkIGJlIE1fV0FJVE9LICovCiAJ
 TUFMTE9DKHVkZm1wLCBzdHJ1Y3QgdWRmX21udCAqLCBzaXplb2Yoc3RydWN0IHVkZl9tbnQp
 LCBNX1VERk1PVU5ULAogCSAgICBNX05PV0FJVCB8IE1fWkVSTyk7CkBAIC00NzUsOCArNDgw
 LDkgQEAgdWRmX21vdW50ZnMoc3RydWN0IHZub2RlICpkZXZ2cCwgc3RydWN0IG1vdW50ICpt
 cCwgc3RydWN0IHRocmVhZCAqdGQpIHsKIAkJZ290byBiYWlsOwogCX0KIAotCXJvb3RfZmVu
 dHJ5ID0gKHN0cnVjdCBmaWxlX2VudHJ5ICopYnAtPmJfZGF0YTsKLQlpZiAoKGVycm9yID0g
 dWRmX2NoZWNrdGFnKCZyb290X2ZlbnRyeS0+dGFnLCBUQUdJRF9GRU5UUlkpKSkgeworCXJv
 b3RfdGFnID0gKHN0cnVjdCBkZXNjX3RhZyAqKWJwLT5iX2RhdGE7CisJaWYgKChlcnJvciA9
 IHVkZl9jaGVja3RhZyhyb290X3RhZywgVEFHSURfRkVOVFJZKSkKKwkgICAgJiYgKGVycm9y
 ID0gdWRmX2NoZWNrdGFnKHJvb3RfdGFnLCBUQUdJRF9FWFRGRU5UUlkpKSkgewogCQlwcmlu
 dGYoIkludmFsaWQgcm9vdCBmaWxlIGVudHJ5IVxuIik7CiAJCWdvdG8gYmFpbDsKIAl9CkBA
 IC01OTAsNyArNTk2LDcgQEAgdWRmX3ZnZXQoc3RydWN0IG1vdW50ICptcCwgaW5vX3QgaW5v
 LCBpbnQgZmxhZ3MsIHN0cnVjdCB2bm9kZSAqKnZwcCkKIAlzdHJ1Y3QgdGhyZWFkICp0ZDsK
 IAlzdHJ1Y3Qgdm5vZGUgKnZwOwogCXN0cnVjdCB1ZGZfbm9kZSAqdW5vZGU7Ci0Jc3RydWN0
 IGZpbGVfZW50cnkgKmZlOworCXN0cnVjdCBkZXNjX3RhZyAqdGFnOwogCWludCBlcnJvciwg
 c2VjdG9yLCBzaXplOwogCiAJZXJyb3IgPSB2ZnNfaGFzaF9nZXQobXAsIGlubywgZmxhZ3Ms
 IGN1cnRocmVhZCwgdnBwLCBOVUxMLCBOVUxMKTsKQEAgLTYzNywxOCArNjQzLDI3IEBAIHVk
 Zl92Z2V0KHN0cnVjdCBtb3VudCAqbXAsIGlub190IGlubywgaW50IGZsYWdzLCBzdHJ1Y3Qg
 dm5vZGUgKip2cHApCiAJCXJldHVybiAoZXJyb3IpOwogCX0KIAotCWZlID0gKHN0cnVjdCBm
 aWxlX2VudHJ5ICopYnAtPmJfZGF0YTsKLQlpZiAodWRmX2NoZWNrdGFnKCZmZS0+dGFnLCBU
 QUdJRF9GRU5UUlkpKSB7CisJdGFnID0gKHN0cnVjdCBkZXNjX3RhZyAqKWJwLT5iX2RhdGE7
 CisJaWYgKHVkZl9jaGVja3RhZyh0YWcsIFRBR0lEX0ZFTlRSWSkgPT0gMCkgeworCQlzdHJ1
 Y3QgZmlsZV9lbnRyeSAqZmUgPSAoc3RydWN0IGZpbGVfZW50cnkgKilicC0+Yl9kYXRhOwor
 CQlzaXplID0gVURGX0ZFTlRSWV9TSVpFICsgbGUzMnRvaChmZS0+bF9lYSkgKyBsZTMydG9o
 KGZlLT5sX2FkKTsKKwl9CisJZWxzZSBpZiAodWRmX2NoZWNrdGFnKHRhZywgVEFHSURfRVhU
 RkVOVFJZKSA9PSAwKSB7CisJCXN0cnVjdCBleHRmaWxlX2VudHJ5ICplZmUgPSAoc3RydWN0
 IGV4dGZpbGVfZW50cnkgKilicC0+Yl9kYXRhOworCQlzaXplID0gVURGX0VYVEZFTlRSWV9T
 SVpFICsgbGUzMnRvaChlZmUtPmxfZWEpICsgbGUzMnRvaChlZmUtPmxfYWQpOworCX0KKwll
 bHNlIHsKIAkJcHJpbnRmKCJJbnZhbGlkIGZpbGUgZW50cnkhXG4iKTsKIAkJdmdvbmUodnAp
 OwogCQl2cHV0KHZwKTsKIAkJYnJlbHNlKGJwKTsKIAkJKnZwcCA9IE5VTEw7Ci0JCXJldHVy
 biAoRU5PTUVNKTsKKwkJcmV0dXJuIChFSU5WQUwpOwogCX0KLQlzaXplID0gVURGX0ZFTlRS
 WV9TSVpFICsgbGUzMnRvaChmZS0+bF9lYSkgKyBsZTMydG9oKGZlLT5sX2FkKTsKKwogCU1B
 TExPQyh1bm9kZS0+ZmVudHJ5LCBzdHJ1Y3QgZmlsZV9lbnRyeSAqLCBzaXplLCBNX1VERkZF
 TlRSWSwKIAkgICAgTV9OT1dBSVQgfCBNX1pFUk8pOworCiAJaWYgKHVub2RlLT5mZW50cnkg
 PT0gTlVMTCkgewogCQlwcmludGYoIkNhbm5vdCBhbGxvY2F0ZSBmaWxlIGVudHJ5IGJsb2Nr
 XG4iKTsKIAkJdmdvbmUodnApOwpkaWZmIC0tZ2l0IGEvc3lzL2ZzL3VkZi91ZGZfdm5vcHMu
 YyBiL3N5cy9mcy91ZGYvdWRmX3Zub3BzLmMKaW5kZXggYjc3ZTU3MS4uMjliNWE2NiAxMDA2
 NDQKLS0tIGEvc3lzL2ZzL3VkZi91ZGZfdm5vcHMuYworKysgYi9zeXMvZnMvdWRmL3VkZl92
 bm9wcy5jCkBAIC0xNjgsNiArMTY4LDIxIEBAIHVkZl9vcGVuKHN0cnVjdCB2b3Bfb3Blbl9h
 cmdzICphcCkgewogCXN0cnVjdCB1ZGZfbm9kZSAqbnAgPSBWVE9OKGFwLT5hX3ZwKTsKIAlv
 ZmZfdCBmc2l6ZTsKIAorCS8qCisJICogV2UgY3VycmVudGx5IGRvIG5vdCBzdXBwb3J0IGFu
 eSBvdGhlciBzdHJhdGVneSB0eXBlLCBzbworCSAqIHVkZl9ibWFwX2ludGVybmFsLCB1ZGZf
 Ym1hcCwgdWRmX3N0cmF0ZWd5IHdvdWxkIGZhaWwuCisJICogSS5lLiB3ZSBjYW4gbm90IGFj
 Y2VzcyBjb250ZW50IG9mIHRoaXMgZmlsZSBhbnl3YXkuCisJICovCisJaWYgKGxlMTZ0b2go
 bnAtPmZlbnRyeS0+aWNidGFnLnN0cmF0X3R5cGUpICE9IDQpIHsKKwkJcHJpbnRmKCJVbnN1
 cHBvcnRlZCBzdHJhdGVneSB0eXBlICVkXG4iLCBsZTE2dG9oKG5wLT5mZW50cnktPmljYnRh
 Zy5zdHJhdF90eXBlKSk7CisJCXJldHVybiBFSU5WQUw7CisJfQorCisJaWYgKG5wLT5mZW50
 cnktPnRhZy5pZCA9PSBUQUdJRF9FWFRGRU5UUlkgJiYgCisJICAgIG5wLT5mZW50cnktPmlu
 Zl9sZW4gIT0gKChzdHJ1Y3QgZXh0ZmlsZV9lbnRyeSAqKW5wLT5mZW50cnkpLT5vYmpfc2l6
 ZSkgeworCQlwcmludGYoIkZpbGVzIHdpdGggbXVsdGlwbGUgc3RyZWFtcyBhcmUgbm90IHN1
 cHBvcnRlZFxuIik7CisJCXJldHVybiBFSU5WQUw7CisJfQogCWZzaXplID0gbGU2NHRvaChu
 cC0+ZmVudHJ5LT5pbmZfbGVuKTsKIAl2bm9kZV9jcmVhdGVfdm9iamVjdChhcC0+YV92cCwg
 ZnNpemUsIGFwLT5hX3RkKTsKIAlyZXR1cm4gMDsKQEAgLTIwNiw5ICsyMjEsMTMgQEAgdWRm
 X3RpbWV0b3RpbWVzcGVjKHN0cnVjdCB0aW1lc3RhbXAgKnRpbWUsIHN0cnVjdCB0aW1lc3Bl
 YyAqdCkKIAogCXQtPnR2X25zZWMgPSAwOwogCi0JLyogRGlyZWN0Q0Qgc2VlbXMgdG8gbGlr
 ZSB1c2luZyBib2d1cyB5ZWFyIHZhbHVlcyAqLworCS8qCisJICogRGlyZWN0Q0Qgc2VlbXMg
 dG8gbGlrZSB1c2luZyBib2d1cyB5ZWFyIHZhbHVlcy4KKwkgKiBEaXN0cnVzdCB0aW1lLT5t
 b250aCBlc3BlY2lhbGx5LCBzaW5jZSBpdCB3aWxsIGJlIHVzZWQgZm9yIGFuCisJICogYXJy
 YXkgaW5kZXguCisJICovCiAJeWVhciA9IGxlMTZ0b2godGltZS0+eWVhcik7Ci0JaWYgKHll
 YXIgPCAxOTcwKSB7CisJaWYgKHllYXIgPCAxOTcwIHx8IHRpbWUtPm1vbnRoID4gMTIpIHsK
 IAkJdC0+dHZfc2VjID0gMDsKIAkJcmV0dXJuOwogCX0KQEAgLTIxNywyMSArMjM2LDE0IEBA
 IHVkZl90aW1ldG90aW1lc3BlYyhzdHJ1Y3QgdGltZXN0YW1wICp0aW1lLCBzdHJ1Y3QgdGlt
 ZXNwZWMgKnQpCiAJdC0+dHZfc2VjID0gdGltZS0+c2Vjb25kOwogCXQtPnR2X3NlYyArPSB0
 aW1lLT5taW51dGUgKiA2MDsKIAl0LT50dl9zZWMgKz0gdGltZS0+aG91ciAqIDM2MDA7Ci0J
 dC0+dHZfc2VjICs9IHRpbWUtPmRheSAqIDM2MDAgKiAyNDsKKwl0LT50dl9zZWMgKz0gKHRp
 bWUtPmRheSAtIDEpICogMzYwMCAqIDI0OwogCiAJLyogQ2FsY3VsYXRlIHRoZSBtb250aCAq
 LwogCWxweWVhciA9IHVkZl9pc2FsZWFweWVhcih5ZWFyKTsKIAlmb3IgKGkgPSAxOyBpIDwg
 dGltZS0+bW9udGg7IGkrKykKLQkJdC0+dHZfc2VjICs9IG1vbl9sZW5zW2xweWVhcl1baV0g
 KiAzNjAwICogMjQ7Ci0KLQkvKiBTcGVlZCB1cCB0aGUgY2FsY3VsYXRpb24gKi8KLQlpZiAo
 eWVhciA+IDE5NzkpCi0JCXQtPnR2X3NlYyArPSAzMTU1MzI4MDA7Ci0JaWYgKHllYXIgPiAx
 OTg5KQotCQl0LT50dl9zZWMgKz0gMzE1NjE5MjAwOwotCWlmICh5ZWFyID4gMTk5OSkKLQkJ
 dC0+dHZfc2VjICs9IDMxNTUzMjgwMDsKLQlmb3IgKGkgPSAyMDAwOyBpIDwgeWVhcjsgaSsr
 KSB7CisJCXQtPnR2X3NlYyArPSBtb25fbGVuc1tscHllYXJdW2kgLSAxXSAqIDM2MDAgKiAy
 NDsKKworCWZvciAoaSA9IDE5NzA7IGkgPCB5ZWFyOyBpKyspIHsKIAkJZGF5c2lueWVhciA9
 IHVkZl9pc2FsZWFweWVhcihpKSArIDM2NSA7CiAJCXQtPnR2X3NlYyArPSBkYXlzaW55ZWFy
 ICogMzYwMCAqIDI0OwogCX0KQEAgLTI3Niw5ICsyODgsMTYgQEAgdWRmX2dldGF0dHIoc3Ry
 dWN0IHZvcF9nZXRhdHRyX2FyZ3MgKmEpCiAJICovCiAJdmFwLT52YV91aWQgPSAobGUzMnRv
 aChmZW50cnktPnVpZCkgPT0gLTEpID8gMCA6IGxlMzJ0b2goZmVudHJ5LT51aWQpOwogCXZh
 cC0+dmFfZ2lkID0gKGxlMzJ0b2goZmVudHJ5LT5naWQpID09IC0xKSA/IDAgOiBsZTMydG9o
 KGZlbnRyeS0+Z2lkKTsKLQl1ZGZfdGltZXRvdGltZXNwZWMoJmZlbnRyeS0+YXRpbWUsICZ2
 YXAtPnZhX2F0aW1lKTsKLQl1ZGZfdGltZXRvdGltZXNwZWMoJmZlbnRyeS0+bXRpbWUsICZ2
 YXAtPnZhX210aW1lKTsKLQl2YXAtPnZhX2N0aW1lID0gdmFwLT52YV9tdGltZTsgLyogWFhY
 IFN0b3JlZCBhcyBhbiBFeHRlbmRlZCBBdHRyaWJ1dGUgKi8KKwlpZiAoZmVudHJ5LT50YWcu
 aWQgPT0gVEFHSURfRkVOVFJZKSB7CisJCXVkZl90aW1ldG90aW1lc3BlYygmZmVudHJ5LT5h
 dGltZSwgJnZhcC0+dmFfYXRpbWUpOworCQl1ZGZfdGltZXRvdGltZXNwZWMoJmZlbnRyeS0+
 bXRpbWUsICZ2YXAtPnZhX210aW1lKTsKKwkJdmFwLT52YV9jdGltZSA9IHZhcC0+dmFfbXRp
 bWU7IC8qIFhYWCBTdG9yZWQgYXMgYW4gRXh0ZW5kZWQgQXR0cmlidXRlICovCisJfQorCWVs
 c2UgeyAvKlRBR0lEX0VYVEZFTlRSWSovCisJCXVkZl90aW1ldG90aW1lc3BlYygmKChzdHJ1
 Y3QgZXh0ZmlsZV9lbnRyeSAqKWZlbnRyeSktPmF0aW1lLCAmdmFwLT52YV9hdGltZSk7CisJ
 CXVkZl90aW1ldG90aW1lc3BlYygmKChzdHJ1Y3QgZXh0ZmlsZV9lbnRyeSAqKWZlbnRyeSkt
 Pm10aW1lLCAmdmFwLT52YV9hdGltZSk7CisJCXVkZl90aW1ldG90aW1lc3BlYygmKChzdHJ1
 Y3QgZXh0ZmlsZV9lbnRyeSAqKWZlbnRyeSktPmN0aW1lLCAmdmFwLT52YV9jdGltZSk7CisJ
 fQogCXZhcC0+dmFfcmRldiA9IDA7IC8qIFhYWCAqLwogCWlmICh2cC0+dl90eXBlICYgVkRJ
 UikgewogCQkvKgpAQCAtMjg3LDkgKzMwNiw5IEBAIHVkZl9nZXRhdHRyKHN0cnVjdCB2b3Bf
 Z2V0YXR0cl9hcmdzICphKQogCQkgKiB0aGF0IGRpcmVjdG9yaWVzIGNvbnN1bWUgYXQgbGVh
 c3Qgb25lIGxvZ2ljYWwgYmxvY2ssCiAJCSAqIG1ha2UgaXQgYXBwZWFyIHNvLgogCQkgKi8K
 LQkJaWYgKGZlbnRyeS0+bG9nYmxrc19yZWMgIT0gMCkgeworCQlpZiAoR0VUX0ZFTlRSWV9G
 SUVMRChmZW50cnksIGxvZ2Jsa3NfcmVjKSAhPSAwKSB7CiAJCQl2YXAtPnZhX3NpemUgPQot
 CQkJICAgIGxlNjR0b2goZmVudHJ5LT5sb2dibGtzX3JlYykgKiBub2RlLT51ZGZtcC0+YnNp
 emU7CisJCQkgICAgR0VUX0ZFTlRSWV9GSUVMRChmZW50cnksIGxvZ2Jsa3NfcmVjKSAqIG5v
 ZGUtPnVkZm1wLT5ic2l6ZTsKIAkJfSBlbHNlIHsKIAkJCXZhcC0+dmFfc2l6ZSA9IG5vZGUt
 PnVkZm1wLT5ic2l6ZTsKIAkJfQpAQCAtMzQzLDcgKzM2Miw5IEBAIHVkZl9wYXRoY29uZihz
 dHJ1Y3Qgdm9wX3BhdGhjb25mX2FyZ3MgKmEpCiAKICNkZWZpbmUgbGJsa25vKHVkZm1wLCBs
 b2MpCSgobG9jKSA+PiAodWRmbXApLT5ic2hpZnQpCiAjZGVmaW5lIGJsa29mZih1ZGZtcCwg
 bG9jKQkoKGxvYykgJiAodWRmbXApLT5ibWFzaykKLSNkZWZpbmUgbGJsa3Rvc2l6ZShpbXAs
 IGJsaykJKChibGspIDw8ICh1ZGZtcCktPmJzaGlmdCkKKyNkZWZpbmUgbGJsa3Rvc2l6ZSh1
 ZGZtcCwgYmxrKQkoKGJsaykgPDwgKHVkZm1wKS0+YnNoaWZ0KQorCisjZGVmaW5lIEhBU19F
 TUJFRERFRF9EQVRBKG5vZGUpICgobGUxNnRvaCgobm9kZSktPmZlbnRyeS0+aWNidGFnLmZs
 YWdzKSAmIDB4NykgPT0gMykKIAogc3RhdGljIGludAogdWRmX3JlYWQoc3RydWN0IHZvcF9y
 ZWFkX2FyZ3MgKmFwKQpAQCAtMzYyLDYgKzM4MywzMiBAQCB1ZGZfcmVhZChzdHJ1Y3Qgdm9w
 X3JlYWRfYXJncyAqYXApCiAJCXJldHVybiAoMCk7CiAJaWYgKHVpby0+dWlvX29mZnNldCA8
 IDApCiAJCXJldHVybiAoRUlOVkFMKTsKKworCWlmIChIQVNfRU1CRURERURfREFUQShub2Rl
 KSkgeworCQl1aW50OF90ICpkYXRhOworCisJCWlmIChub2RlLT5mZW50cnktPnRhZy5pZCA9
 PSBUQUdJRF9GRU5UUlkpIHsKKwkJCXN0cnVjdCBmaWxlX2VudHJ5ICpmZW50cnkgPSBub2Rl
 LT5mZW50cnk7CisJCQlkYXRhID0gJmZlbnRyeS0+ZGF0YVtsZTMydG9oKGZlbnRyeS0+bF9l
 YSldOworCQkJZnNpemUgPSBsZTMydG9oKGZlbnRyeS0+bF9hZCk7CisJCX0KKwkJZWxzZSB7
 CisJCQlzdHJ1Y3QgZXh0ZmlsZV9lbnRyeSAqZmVudHJ5ID0gKHN0cnVjdCBleHRmaWxlX2Vu
 dHJ5ICopbm9kZS0+ZmVudHJ5OworCQkJZGF0YSA9ICZmZW50cnktPmRhdGFbbGUzMnRvaChm
 ZW50cnktPmxfZWEpXTsKKwkJCWZzaXplID0gbGUzMnRvaChmZW50cnktPmxfYWQpOworCQl9
 CisKKwkJbiA9IHVpby0+dWlvX3Jlc2lkOworCQlkaWZmID0gZnNpemUgLSB1aW8tPnVpb19v
 ZmZzZXQ7CisJCWlmIChkaWZmIDw9IDApCisJCQlyZXR1cm4gKDApOworCQlpZiAoZGlmZiA8
 IG4pCisJCQluID0gZGlmZjsKKworCQllcnJvciA9IHVpb21vdmUoZGF0YSArIHVpby0+dWlv
 X29mZnNldCwgKGludCluLCB1aW8pOworCQlyZXR1cm4gKGVycm9yKTsKKwl9CisKIAlmc2l6
 ZSA9IGxlNjR0b2gobm9kZS0+ZmVudHJ5LT5pbmZfbGVuKTsKIAl1ZGZtcCA9IG5vZGUtPnVk
 Zm1wOwogCWRvIHsKQEAgLTc1OCw3ICs4MDUsOCBAQCB1ZGZfcmVhZGRpcihzdHJ1Y3Qgdm9w
 X3JlYWRkaXJfYXJncyAqYSkKIAkJCSAgICBkcy0+dGhpc19vZmYpOwogCQl9CiAJCWlmIChl
 cnJvcikgewotCQkJcHJpbnRmKCJ1aW9tb3ZlIHJldHVybmVkICVkXG4iLCBlcnJvcik7CisJ
 CQlpZihlcnJvciA+IDApCisJCQkJcHJpbnRmKCJ1aW9tb3ZlIHJldHVybmVkICVkXG4iLCBl
 cnJvcik7CiAJCQlicmVhazsKIAkJfQogCkBAIC03NjgsNiArODE2LDggQEAgdWRmX3JlYWRk
 aXIoc3RydWN0IHZvcF9yZWFkZGlyX2FyZ3MgKmEpCiAJKmEtPmFfZW9mZmxhZyA9IHVpb2Rp
 ci5lb2ZmbGFnOwogCXVpby0+dWlvX29mZnNldCA9IGRzLT5vZmZzZXQgKyBkcy0+b2ZmOwog
 CisJaWYoZXJyb3IgPCAwKQorCQllcnJvciA9IDA7CiAJaWYgKCFlcnJvcikKIAkJZXJyb3Ig
 PSBkcy0+ZXJyb3I7CiAKQEAgLTc5OSwxMCArODQ5LDEwIEBAIHVkZl9zdHJhdGVneShzdHJ1
 Y3Qgdm9wX3N0cmF0ZWd5X2FyZ3MgKmEpCiAJc3RydWN0IGJ1ZiAqYnA7CiAJc3RydWN0IHZu
 b2RlICp2cDsKIAlzdHJ1Y3QgdWRmX25vZGUgKm5vZGU7CisJc3RydWN0IGJ1Zm9iaiAqYm87
 CiAJaW50IG1heHNpemU7CiAJZGFkZHJfdCBzZWN0b3I7Ci0Jc3RydWN0IGJ1Zm9iaiAqYm87
 Ci0JaW50IG11bHRpcGxpZXI7CisJaW50IGVycm9yOwogCiAJYnAgPSBhLT5hX2JwOwogCXZw
 ID0gYS0+YV92cDsKQEAgLTgxMywyNCArODYzLDIzIEBAIHVkZl9zdHJhdGVneShzdHJ1Y3Qg
 dm9wX3N0cmF0ZWd5X2FyZ3MgKmEpCiAJCSAqIEZpbGVzIHRoYXQgYXJlIGVtYmVkZGVkIGlu
 IHRoZSBmZW50cnkgZG9uJ3QgdHJhbnNsYXRlIHdlbGwKIAkJICogdG8gYSBibG9jayBudW1i
 ZXIuICBSZWplY3QuCiAJCSAqLwotCQlpZiAodWRmX2JtYXBfaW50ZXJuYWwobm9kZSwgYnAt
 PmJfbGJsa25vICogbm9kZS0+dWRmbXAtPmJzaXplLAotCQkgICAgJnNlY3RvciwgJm1heHNp
 emUpKSB7CisJCWVycm9yID0gdWRmX2JtYXBfaW50ZXJuYWwobm9kZSwgbGJsa3Rvc2l6ZShu
 b2RlLT51ZGZtcCwgYnAtPmJfbGJsa25vKSwgJnNlY3RvciwgJm1heHNpemUpOworCQlpZiAo
 ZXJyb3IpIHsKKwkJCWlmIChlcnJvciA9PSBVREZfSU5WQUxJRF9CTUFQKQorCQkJCXByaW50
 ZigidWRmX3N0cmF0ZWd5IGNhbGxlZCBmb3IgZmlsZSB3aXRoIGRhdGEgZW1iZWRkZWQgaW4g
 ZmVudHJ5XG4iKTsKIAkJCWNscmJ1ZihicCk7CiAJCQlicC0+Yl9ibGtubyA9IC0xOworCQkJ
 YnVmZG9uZShicCk7CisJCQlyZXR1cm4gKDApOwogCQl9Ci0KLQkJLyogYm1hcCBnaXZlcyBz
 ZWN0b3IgbnVtYmVycywgYmlvIHdvcmtzIHdpdGggZGV2aWNlIGJsb2NrcyAqLwotCQltdWx0
 aXBsaWVyID0gbm9kZS0+dWRmbXAtPmJzaXplIC8gREVWX0JTSVpFOwotCQlicC0+Yl9ibGtu
 byA9IHNlY3RvciAqIG11bHRpcGxpZXI7Ci0KLQl9Ci0JaWYgKChsb25nKWJwLT5iX2Jsa25v
 ID09IC0xKSB7Ci0JCWJ1ZmRvbmUoYnApOwotCQlyZXR1cm4gKDApOworCQkvKiB1ZGZfYm1h
 cF9pbnRlcm5hbCBnaXZlcyBzZWN0b3IgbnVtYmVycywgYmlvIHdvcmtzIHdpdGggZGV2aWNl
 IGJsb2NrcyAqLworCQlicC0+Yl9ibGtubyA9IHNlY3RvciA8PCAobm9kZS0+dWRmbXAtPmJz
 aGlmdCAtIERFVl9CU0hJRlQpOwogCX0KKwogCWJvID0gbm9kZS0+dWRmbXAtPmltX2JvOwog
 CWJwLT5iX2lvb2Zmc2V0ID0gZGJ0b2IoYnAtPmJfYmxrbm8pOwogCUJPX1NUUkFURUdZKGJv
 LCBicCk7CisKIAlyZXR1cm4gKDApOwogfQogCkBAIC04NTEsMTcgKzkwMCw0MyBAQCB1ZGZf
 Ym1hcChzdHJ1Y3Qgdm9wX2JtYXBfYXJncyAqYSkKIAlpZiAoYS0+YV9ydW5iKQogCQkqYS0+
 YV9ydW5iID0gMDsKIAotCWVycm9yID0gdWRmX2JtYXBfaW50ZXJuYWwobm9kZSwgYS0+YV9i
 biAqIG5vZGUtPnVkZm1wLT5ic2l6ZSwgJmxzZWN0b3IsCi0JICAgICZtYXhfc2l6ZSk7CisJ
 LyoKKwkgKiBVREZfSU5WQUxJRF9CTUFQIG1lYW5zIGRhdGEgZW1iZWRkZWQgaW50byBmZW50
 cnksIHRoaXMgaXMgYW4gaW50ZXJuYWwKKwkgKiBlcnJvciB0aGF0IHNob3VsZCBub3QgYmUg
 cHJvcGFnYXRlZCB0byBjYWxsaW5nIGNvZGUuCisJICogTW9zdCBvYnZpb3VzIG1hcHBpbmcg
 Zm9yIHRoaXMgZXJyb3IgaXMgRU9QTk9UU1VQUCBhcyB3ZSBjYW4gbm90IHRydWx5CisJICog
 dHJhbnNsYXRlIGJsb2NrIG51bWJlcnMgaW4gdGhpcyBjYXNlLgorCSAqIEluY2lkZW50YWxs
 eSwgdGhpcyByZXR1cm4gY29kZSB3aWxsIG1ha2Ugdm5vZGUgcGFnZXIgdG8gdXNlIFZPUF9S
 RUFECisJICogdG8gZ2V0IGRhdGEgZm9yIG1tYXAtZWQgcGFnZXMgYW5kIHVkZl9yZWFkIGtu
 b3dzIGhvdyB0byBkbyB0aGUgcmlnaHQKKwkgKiB0aGluZyBmb3IgdGhpcyBraW5kIG9mIGZp
 bGVzLgorCSAqLworCWVycm9yID0gdWRmX2JtYXBfaW50ZXJuYWwobm9kZSwgYS0+YV9ibiA8
 PCBub2RlLT51ZGZtcC0+YnNoaWZ0LCAmbHNlY3RvciwgJm1heF9zaXplKTsKKwlpZiAoZXJy
 b3IgPT0gVURGX0lOVkFMSURfQk1BUCkKKwkJcmV0dXJuIEVPUE5PVFNVUFA7CiAJaWYgKGVy
 cm9yKQogCQlyZXR1cm4gKGVycm9yKTsKIAogCS8qIFRyYW5zbGF0ZSBsb2dpY2FsIHRvIHBo
 eXNpY2FsIHNlY3RvciBudW1iZXIgKi8KIAkqYS0+YV9ibnAgPSBsc2VjdG9yIDw8IChub2Rl
 LT51ZGZtcC0+YnNoaWZ0IC0gREVWX0JTSElGVCk7CiAKLQkvKiBQdW50IG9uIHJlYWQtYWhl
 YWQgZm9yIG5vdyAqLwotCWlmIChhLT5hX3J1bnApCi0JCSphLT5hX3J1bnAgPSAwOworCS8q
 CisJICogRGV0ZXJtaW5lIG1heGltdW0gbnVtYmVyIG9mIHJlYWRhaGVhZCBibG9ja3MgZm9s
 bG93aW5nIHRoZQorCSAqIHJlcXVlc3RlZCBibG9jay4KKwkgKi8KKwlpZiAoYS0+YV9ydW5w
 KSB7CisJCWludCBuYmxrOworCisJCW5ibGsgPSAobWF4X3NpemUgPj4gbm9kZS0+dWRmbXAt
 PmJzaGlmdCkgLSAxOworCQlpZiAobmJsayA8PSAwKQorCQkJKmEtPmFfcnVucCA9IDA7CisJ
 CWVsc2UgaWYgKG5ibGsgPj0gKE1BWEJTSVpFID4+IG5vZGUtPnVkZm1wLT5ic2hpZnQpKQor
 CQkJKmEtPmFfcnVucCA9IChNQVhCU0laRSA+PiBub2RlLT51ZGZtcC0+YnNoaWZ0KSAtIDE7
 CisJCWVsc2UKKwkJCSphLT5hX3J1bnAgPSBuYmxrOworCX0KKworCWlmIChhLT5hX3J1bmIp
 IHsKKwkJKmEtPmFfcnVuYiA9IDA7CisJfQogCiAJcmV0dXJuICgwKTsKIH0KQEAgLTEwNTIs
 NyArMTEyNyw2IEBAIHVkZl9yZWFkYXRvZmZzZXQoc3RydWN0IHVkZl9ub2RlICpub2RlLCBp
 bnQgKnNpemUsIG9mZl90IG9mZnNldCwKICAgICBzdHJ1Y3QgYnVmICoqYnAsIHVpbnQ4X3Qg
 KipkYXRhKQogewogCXN0cnVjdCB1ZGZfbW50ICp1ZGZtcDsKLQlzdHJ1Y3QgZmlsZV9lbnRy
 eSAqZmVudHJ5ID0gTlVMTDsKIAlzdHJ1Y3QgYnVmICpicDE7CiAJdWludDMyX3QgbWF4X3Np
 emU7CiAJZGFkZHJfdCBzZWN0b3I7CkBAIC0xMDYwLDE2ICsxMTM0LDI2IEBAIHVkZl9yZWFk
 YXRvZmZzZXQoc3RydWN0IHVkZl9ub2RlICpub2RlLCBpbnQgKnNpemUsIG9mZl90IG9mZnNl
 dCwKIAogCXVkZm1wID0gbm9kZS0+dWRmbXA7CiAKLQkqYnAgPSBOVUxMOworCS8qCisJICog
 VGhpcyBjYWxsIGlzIG1hZGUgbm90IG9ubHkgdG8gZGV0ZWN0IFVERl9JTlZBTElEX0JNQVAg
 Y2FzZSwKKwkgKiBtYXhfc2l6ZSBpcyB1c2VkIGFzIGFuIGFkLWhvYyByZWFkLWFoZWFkIGhp
 bnQgZm9yICJub3JtYWwiIGNhc2UuCisJICovCiAJZXJyb3IgPSB1ZGZfYm1hcF9pbnRlcm5h
 bChub2RlLCBvZmZzZXQsICZzZWN0b3IsICZtYXhfc2l6ZSk7CiAJaWYgKGVycm9yID09IFVE
 Rl9JTlZBTElEX0JNQVApIHsKIAkJLyoKIAkJICogVGhpcyBlcnJvciBtZWFucyB0aGF0IHRo
 ZSBmaWxlICpkYXRhKiBpcyBzdG9yZWQgaW4gdGhlCiAJCSAqIGFsbG9jYXRpb24gZGVzY3Jp
 cHRvciBmaWVsZCBvZiB0aGUgZmlsZSBlbnRyeS4KIAkJICovCi0JCWZlbnRyeSA9IG5vZGUt
 PmZlbnRyeTsKLQkJKmRhdGEgPSAmZmVudHJ5LT5kYXRhW2xlMzJ0b2goZmVudHJ5LT5sX2Vh
 KV07Ci0JCSpzaXplID0gbGUzMnRvaChmZW50cnktPmxfYWQpOworCQlpZiAobm9kZS0+ZmVu
 dHJ5LT50YWcuaWQgPT0gVEFHSURfRkVOVFJZKSB7CisJCQlzdHJ1Y3QgZmlsZV9lbnRyeSAq
 ZmVudHJ5ID0gbm9kZS0+ZmVudHJ5OworCQkJKmRhdGEgPSAmZmVudHJ5LT5kYXRhW2xlMzJ0
 b2goZmVudHJ5LT5sX2VhKV07CisJCQkqc2l6ZSA9IGxlMzJ0b2goZmVudHJ5LT5sX2FkKTsK
 KwkJfQorCQllbHNlIHsKKwkJCXN0cnVjdCBleHRmaWxlX2VudHJ5ICpmZW50cnkgPSAoc3Ry
 dWN0IGV4dGZpbGVfZW50cnkgKilub2RlLT5mZW50cnk7CisJCQkqZGF0YSA9ICZmZW50cnkt
 PmRhdGFbbGUzMnRvaChmZW50cnktPmxfZWEpXTsKKwkJCSpzaXplID0gbGUzMnRvaChmZW50
 cnktPmxfYWQpOworCQl9CiAJCXJldHVybiAoMCk7CiAJfSBlbHNlIGlmIChlcnJvciAhPSAw
 KSB7CiAJCXJldHVybiAoZXJyb3IpOwpAQCAtMTA3OCw5ICsxMTYyLDEwIEBAIHVkZl9yZWFk
 YXRvZmZzZXQoc3RydWN0IHVkZl9ub2RlICpub2RlLCBpbnQgKnNpemUsIG9mZl90IG9mZnNl
 dCwKIAkvKiBBZGp1c3QgdGhlIHNpemUgc28gdGhhdCBpdCBpcyB3aXRoaW4gcmFuZ2UgKi8K
 IAlpZiAoKnNpemUgPT0gMCB8fCAqc2l6ZSA+IG1heF9zaXplKQogCQkqc2l6ZSA9IG1heF9z
 aXplOwotCSpzaXplID0gbWluKCpzaXplLCBNQVhCU0laRSk7CisJKnNpemUgPSBtaW4oKnNp
 emUsIE1BWEJTSVpFIC0gYmxrb2ZmKHVkZm1wLCBvZmZzZXQpKTsKIAotCWlmICgoZXJyb3Ig
 PSB1ZGZfcmVhZGxibGtzKHVkZm1wLCBzZWN0b3IsICpzaXplICsgKG9mZnNldCAmIHVkZm1w
 LT5ibWFzayksIGJwKSkpIHsKKwkqYnAgPSBOVUxMOworCWlmICgoZXJyb3IgPSBicmVhZChu
 b2RlLT5pX3Zub2RlLCBsYmxrbm8odWRmbXAsIG9mZnNldCksICgqc2l6ZSArIGJsa29mZih1
 ZGZtcCwgb2Zmc2V0KSArIHVkZm1wLT5ibWFzaykgJiB+dWRmbXAtPmJtYXNrLCBOT0NSRUQs
 IGJwKSkpIHsKIAkJcHJpbnRmKCJ3YXJuaW5nOiB1ZGZfcmVhZGxibGtzIHJldHVybmVkIGVy
 cm9yICVkXG4iLCBlcnJvcik7CiAJCS8qIG5vdGU6ICpicCBtYXkgYmUgbm9uLU5VTEwgKi8K
 IAkJcmV0dXJuIChlcnJvcik7CkBAIC0xMTM3LDEyICsxMjIyLDEyIEBAIHVkZl9ibWFwX2lu
 dGVybmFsKHN0cnVjdCB1ZGZfbm9kZSAqbm9kZSwgb2ZmX3Qgb2Zmc2V0LCBkYWRkcl90ICpz
 ZWN0b3IsCiAJCWRvIHsKIAkJCW9mZnNldCAtPSBpY2JsZW47CiAJCQlhZF9vZmZzZXQgPSBz
 aXplb2Yoc3RydWN0IHNob3J0X2FkKSAqIGFkX251bTsKLQkJCWlmIChhZF9vZmZzZXQgPiBs
 ZTMydG9oKGZlbnRyeS0+bF9hZCkpIHsKKwkJCWlmIChhZF9vZmZzZXQgPiBsZTMydG9oKEdF
 VF9GRU5UUllfRklFTEQoZmVudHJ5LCBsX2FkKSkpIHsKIAkJCQlwcmludGYoIkZpbGUgb2Zm
 c2V0IG91dCBvZiBib3VuZHNcbiIpOwogCQkJCXJldHVybiAoRUlOVkFMKTsKIAkJCX0KIAkJ
 CWljYiA9IEdFVElDQihzaG9ydF9hZCwgZmVudHJ5LAotCQkJICAgIGxlMzJ0b2goZmVudHJ5
 LT5sX2VhKSArIGFkX29mZnNldCk7CisJCQkgICAgbGUzMnRvaChHRVRfRkVOVFJZX0ZJRUxE
 KGZlbnRyeSwgbF9lYSkpICsgYWRfb2Zmc2V0KTsKIAkJCWljYmxlbiA9IEdFVElDQkxFTihz
 aG9ydF9hZCwgaWNiKTsKIAkJCWFkX251bSsrOwogCQl9IHdoaWxlKG9mZnNldCA+PSBpY2Js
 ZW4pOwpAQCAtMTE2MiwxMiArMTI0NywxMiBAQCB1ZGZfYm1hcF9pbnRlcm5hbChzdHJ1Y3Qg
 dWRmX25vZGUgKm5vZGUsIG9mZl90IG9mZnNldCwgZGFkZHJfdCAqc2VjdG9yLAogCQlkbyB7
 CiAJCQlvZmZzZXQgLT0gaWNibGVuOwogCQkJYWRfb2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBs
 b25nX2FkKSAqIGFkX251bTsKLQkJCWlmIChhZF9vZmZzZXQgPiBsZTMydG9oKGZlbnRyeS0+
 bF9hZCkpIHsKKwkJCWlmIChhZF9vZmZzZXQgPiBsZTMydG9oKEdFVF9GRU5UUllfRklFTEQo
 ZmVudHJ5LCBsX2FkKSkpIHsKIAkJCQlwcmludGYoIkZpbGUgb2Zmc2V0IG91dCBvZiBib3Vu
 ZHNcbiIpOwogCQkJCXJldHVybiAoRUlOVkFMKTsKIAkJCX0KIAkJCWljYiA9IEdFVElDQihs
 b25nX2FkLCBmZW50cnksCi0JCQkgICAgbGUzMnRvaChmZW50cnktPmxfZWEpICsgYWRfb2Zm
 c2V0KTsKKwkJCSAgICBsZTMydG9oKEdFVF9GRU5UUllfRklFTEQoZmVudHJ5LCBsX2VhKSkg
 KyBhZF9vZmZzZXQpOwogCQkJaWNibGVuID0gR0VUSUNCTEVOKGxvbmdfYWQsIGljYik7CiAJ
 CQlhZF9udW0rKzsKIAkJfSB3aGlsZShvZmZzZXQgPj0gaWNibGVuKTsK
 --------------010602090500050006060906--

From: Alexander Best <alexbestms@uni-muenster.de>
To: Andriy Gapon <avg@icyb.net.ua>
Cc: bug-followup@FreeBSD.org, Oliver Herold <oliver@akephalos.de>, scottl@FreeBSD.org
Subject: Re: kern/120989: [udf] [patch] UDF (with DVD RAM) isn't 
	mountable/readable
Date: Mon, 19 Jul 2010 04:07:19 +0200

 freebsd is still missing udf 2.x support. if wikipedia is correct the
 latest revision is udf 2.60 from 2005.
 
 reinoud zandijk has taken scotts udf 1.x work and extended it to
 support udf 2.60. [1] the code is in the netbsd (and also openbsd)
 tree. maybe somebody is willing to backport it to freebsd.
 
 cheers.
 alex
 
 [1] http://mail-index.netbsd.org/current-users/2006/02/02/0027.html
 
 -- 
 Alexander Best

From: Andriy Gapon <avg@icyb.net.ua>
To: Alexander Best <alexbestms@uni-muenster.de>
Cc: bug-followup@FreeBSD.org, Oliver Herold <oliver@akephalos.de>,
        scottl@FreeBSD.org
Subject: Re: kern/120989: [udf] [patch] UDF (with DVD RAM) isn't 	mountable/readable
Date: Mon, 19 Jul 2010 09:39:22 +0300

 on 19/07/2010 05:07 Alexander Best said the following:
 > freebsd is still missing udf 2.x support. if wikipedia is correct the
 > latest revision is udf 2.60 from 2005.
 > 
 > reinoud zandijk has taken scotts udf 1.x work and extended it to
 > support udf 2.60. [1] the code is in the netbsd (and also openbsd)
 > tree. maybe somebody is willing to backport it to freebsd.
 
 Yeah.
 http://www.freebsd.org/projects/ideas/ideas.html#p-portudf
 -- 
 Andriy Gapon
>Unformatted:
