kern/138109: [extfs] [patch] Minor cleanups to the
sys/gnu/fs/ext2fs based on BSD Lite2
Pedro F. Giffuni
giffunip at tutopia.com
Thu Sep 10 20:00:07 UTC 2009
The following reply was made to PR kern/138109; it has been noted by GNATS.
From: "Pedro F. Giffuni" <giffunip at tutopia.com>
To: bug-followup at FreeBSD.org
Cc: Bruce Evans <brde at optusnet.com.au>
Subject: Re: kern/138109: [extfs] [patch] Minor cleanups to the sys/gnu/fs/ext2fs based on BSD Lite2
Date: Thu, 10 Sep 2009 12:28:17 -0700 (PDT)
--0-1580472039-1252610897=:7136
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Hello;=0A=0AI finally did a new sweep and attempted to clean the issues not=
ed by Bruce. I also added a couple of patches of his authorship(issue with =
a goal=3D=3D0 and the clustering cleanups).=0AI tried to make the BSD licen=
sed code (in particular *fs_inode.c) similar to the PRE_SOFTUPDATE tag.=0A=
=0AThe patch compiles on my system and a similar patch has been tested by A=
ditya Sarawgi for his Google SoC project.=0A=0A=0A
--0-1580472039-1252610897=:7136
Content-Type: application/octet-stream; name=patch-ext2fs
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="patch-ext2fs"
ZGlmZiAtdSBleHQyZnMub3JpZy9leHQyX2FsbG9jLmMgZXh0MmZzL2V4dDJf
YWxsb2MuYwotLS0gZXh0MmZzLm9yaWcvZXh0Ml9hbGxvYy5jCTIwMDktMDkt
MTAgMTM6MDU6MzEuMDAwMDAwMDAwICswMDAwCisrKyBleHQyZnMvZXh0Ml9h
bGxvYy5jCTIwMDktMDktMTAgMTM6NDE6MDkuMDAwMDAwMDAwICswMDAwCkBA
IC00NDEsNyArNDQxLDcgQEAKIAkvKiBpZiB0aGUgbmV4dCBibG9jayBpcyBh
Y3R1YWxseSB3aGF0IHdlIHRob3VnaHQgaXQgaXMsCiAJICAgdGhlbiBzZXQg
dGhlIGdvYWwgdG8gd2hhdCB3ZSB0aG91Z2h0IGl0IHNob3VsZCBiZQogCSov
Ci0JaWYoaXAtPmlfbmV4dF9hbGxvY19ibG9jayA9PSBsYm4pCisJaWYoaXAt
PmlfbmV4dF9hbGxvY19ibG9jayA9PSBsYm4gJiYgaXAtPmlfbmV4dF9hbGxv
Y19nb2FsICE9IDApCiAJCXJldHVybiBpcC0+aV9uZXh0X2FsbG9jX2dvYWw7
CiAKIAkvKiBub3cgY2hlY2sgd2hldGhlciB3ZSB3ZXJlIHByb3ZpZGVkIHdp
dGggYW4gYXJyYXkgdGhhdCBiYXNpY2FsbHkKZGlmZiAtdSBleHQyZnMub3Jp
Zy9leHQyX2lub2RlLmMgZXh0MmZzL2V4dDJfaW5vZGUuYwotLS0gZXh0MmZz
Lm9yaWcvZXh0Ml9pbm9kZS5jCTIwMDktMDktMTAgMTM6MDU6MzEuMDAwMDAw
MDAwICswMDAwCisrKyBleHQyZnMvZXh0Ml9pbm9kZS5jCTIwMDktMDktMTAg
MTM6NDI6MjEuMDAwMDAwMDAwICswMDAwCkBAIC0xMjYsMTYgKzEyNiwxMSBA
QAogCWxvbmcgY291bnQsIG5ibG9ja3MsIGJsb2Nrc3JlbGVhc2VkID0gMDsK
IAlpbnQgYWZsYWdzLCBlcnJvciwgaSwgYWxsZXJyb3I7CiAJb2ZmX3Qgb3Np
emU7Ci0vKgotcHJpbnRmKCJleHQyX3RydW5jYXRlIGNhbGxlZCAlZCB0byAl
ZFxuIiwgVlRPSShvdnApLT5pX251bWJlciwgbGVuZ3RoKTsKLSovCS8qIAot
CSAqIG5lZ2F0aXZlIGZpbGUgc2l6ZXMgd2lsbCB0b3RhbGx5IGJyZWFrIHRo
ZSBjb2RlIGJlbG93IGFuZAotCSAqIGFyZSBub3QgbWVhbmluZ2Z1bCBhbnl3
YXlzLgotCSAqLworCisJb2lwID0gVlRPSShvdnApOwkgCiAJaWYgKGxlbmd0
aCA8IDApCi0JICAgIHJldHVybiBFRkJJRzsKKwkJcmV0dXJuIChFSU5WQUwp
OwogCi0Jb2lwID0gVlRPSShvdnApOwogCWlmIChvdnAtPnZfdHlwZSA9PSBW
TE5LICYmCiAJICAgIG9pcC0+aV9zaXplIDwgb3ZwLT52X21vdW50LT5tbnRf
bWF4c3ltbGlua2xlbikgewogI2lmZGVmIERJQUdOT1NUSUMKQEAgLTE1Nywy
MyArMTUyLDI5IEBACiAJLyoKIAkgKiBMZW5ndGhlbiB0aGUgc2l6ZSBvZiB0
aGUgZmlsZS4gV2UgbXVzdCBlbnN1cmUgdGhhdCB0aGUKIAkgKiBsYXN0IGJ5
dGUgb2YgdGhlIGZpbGUgaXMgYWxsb2NhdGVkLiBTaW5jZSB0aGUgc21hbGxl
c3QKLQkgKiB2YWx1ZSBvZiBvc3ppZSBpcyAwLCBsZW5ndGggd2lsbCBiZSBh
dCBsZWFzdCAxLgorCSAqIHZhbHVlIG9mIG9zaXplIGlzIDAsIGxlbmd0aCB3
aWxsIGJlIGF0IGxlYXN0IDEuCiAJICovCiAJaWYgKG9zaXplIDwgbGVuZ3Ro
KSB7CiAJCWlmIChsZW5ndGggPiBvaXAtPmlfZTJmcy0+ZnNfbWF4ZmlsZXNp
emUpCiAJCQlyZXR1cm4gKEVGQklHKTsKKwkJdm5vZGVfcGFnZXJfc2V0c2l6
ZShvdnAsIGxlbmd0aCk7CiAJCW9mZnNldCA9IGJsa29mZihmcywgbGVuZ3Ro
IC0gMSk7CiAJCWxibiA9IGxibGtubyhmcywgbGVuZ3RoIC0gMSk7CiAJCWFm
bGFncyA9IEJfQ0xSQlVGOwogCQlpZiAoZmxhZ3MgJiBJT19TWU5DKQogCQkJ
YWZsYWdzIHw9IEJfU1lOQzsKLQkJdm5vZGVfcGFnZXJfc2V0c2l6ZShvdnAs
IGxlbmd0aCk7Ci0JCWlmICgoZXJyb3IgPSBleHQyX2JhbGxvYyhvaXAsIGxi
biwgb2Zmc2V0ICsgMSwgY3JlZCwgJmJwLAotCQkgICAgYWZsYWdzKSkgIT0g
MCkKKwkJZXJyb3IgPSBleHQyX2JhbGxvYyhvaXAsIGxibiwgb2Zmc2V0ICsg
MSwgY3JlZCwgJmJwLCBhZmxhZ3MpOworCQlpZiAoZXJyb3IpIHsKKwkJCXZu
b2RlX3BhZ2VyX3NldHNpemUodnAsIG9zaXplKTsKIAkJCXJldHVybiAoZXJy
b3IpOworCQl9CiAJCW9pcC0+aV9zaXplID0gbGVuZ3RoOwotCQlpZiAoYWZs
YWdzICYgSU9fU1lOQykKKwkJaWYgKGJwLT5iX2J1ZnNpemUgPT0gZnMtPnNf
YmxvY2tzaXplKQorCQkJYnAtPmJfZmxhZ3MgfD0gQl9DTFVTVEVST0s7CisJ
CWlmIChhZmxhZ3MgJiBCX1NZTkMpCiAJCQlid3JpdGUoYnApOworCQllbHNl
IGlmIChvdnAtPnZfbW91bnQtPm1udF9mbGFnICYgTU5UX0FTWU5DKQorCQkJ
YmR3cml0ZShicCk7CiAJCWVsc2UKIAkJCWJhd3JpdGUoYnApOwogCQlvaXAt
PmlfZmxhZyB8PSBJTl9DSEFOR0UgfCBJTl9VUERBVEU7CkBAIC0xOTUsMTUg
KzE5NiwxOSBAQAogCQlhZmxhZ3MgPSBCX0NMUkJVRjsKIAkJaWYgKGZsYWdz
ICYgSU9fU1lOQykKIAkJCWFmbGFncyB8PSBCX1NZTkM7Ci0JCWlmICgoZXJy
b3IgPSBleHQyX2JhbGxvYyhvaXAsIGxibiwgb2Zmc2V0LCBjcmVkLCAmYnAs
Ci0JCSAgICBhZmxhZ3MpKSAhPSAwKQorCQllcnJvciA9IGV4dDJfYmFsbG9j
KG9pcCwgbGJuLCBvZmZzZXQsIGNyZWQsICZicCwgYWZsYWdzKTsKKwkJaWYg
KGVycm9yKQogCQkJcmV0dXJuIChlcnJvcik7CiAJCW9pcC0+aV9zaXplID0g
bGVuZ3RoOwogCQlzaXplID0gYmxrc2l6ZShmcywgb2lwLCBsYm4pOwogCQli
emVybygoY2hhciAqKWJwLT5iX2RhdGEgKyBvZmZzZXQsICh1X2ludCkoc2l6
ZSAtIG9mZnNldCkpOwogCQlhbGxvY2J1ZihicCwgc2l6ZSk7Ci0JCWlmIChh
ZmxhZ3MgJiBJT19TWU5DKQorCQlpZiAoYnAtPmJfYnVmc2l6ZSA9PSBmcy0+
c19ibG9ja3NpemUpCisJCQlicC0+Yl9mbGFncyB8PSBCX0NMVVNURVJPSzsK
KwkJaWYgKGFmbGFncyAmIEJfU1lOQykKIAkJCWJ3cml0ZShicCk7CisJCWVs
c2UgaWYgKG92cC0+dl9tb3VudC0+bW50X2ZsYWcgJiBNTlRfQVNZTkMpCisJ
CQliZHdyaXRlKGJwKTsKIAkJZWxzZQogCQkJYmF3cml0ZShicCk7CiAJfQpA
QCAtMjQ3LDYgKzI1Miw3IEBACiAJZXJyb3IgPSB2dHJ1bmNidWYob3ZwLCBj
cmVkLCB0ZCwgbGVuZ3RoLCAoaW50KWZzLT5zX2Jsb2Nrc2l6ZSk7CiAJaWYg
KGVycm9yICYmIChhbGxlcnJvciA9PSAwKSkKIAkJYWxsZXJyb3IgPSBlcnJv
cjsKKwl2bm9kZV9wYWdlcl9zZXRzaXplKG92cCwgbGVuZ3RoKTsKIAogCS8q
CiAJICogSW5kaXJlY3QgYmxvY2tzIGZpcnN0LgpkaWZmIC11IGV4dDJmcy5v
cmlnL2V4dDJfcmVhZHdyaXRlLmMgZXh0MmZzL2V4dDJfcmVhZHdyaXRlLmMK
LS0tIGV4dDJmcy5vcmlnL2V4dDJfcmVhZHdyaXRlLmMJMjAwOS0wOS0xMCAx
MzowNTozMS4wMDAwMDAwMDAgKzAwMDAKKysrIGV4dDJmcy9leHQyX3JlYWR3
cml0ZS5jCTIwMDktMDktMTAgMTQ6MTM6NDEuMDAwMDAwMDAwICswMDAwCkBA
IC0zNiw2ICszNiw3IEBACiAgKiAkRnJlZUJTRDogc3JjL3N5cy9nbnUvZnMv
ZXh0MmZzL2V4dDJfcmVhZHdyaXRlLmMsdiAxLjMxLjIwLjEgMjAwOS8wNC8x
NSAwMzoxNDoyNiBrZW5zbWl0aCBFeHAgJAogICovCiAKKy8qIFhYWCBUT0RP
OiByZW1vdmUgdGhlc2Ugb2JmdXNjYXRpb25zIChhcyBpbiBmZnNfdm5vcHMu
YykuICovCiAjZGVmaW5lCUJMS1NJWkUoYSwgYiwgYykJYmxrc2l6ZShhLCBi
LCBjKQogI2RlZmluZQlGUwkJCXN0cnVjdCBleHQyX3NiX2luZm8KICNkZWZp
bmUJSV9GUwkJCWlfZTJmcwpAQCAtNDcsNyArNDgsNiBAQAogLyoKICAqIFZu
b2RlIG9wIGZvciByZWFkaW5nLgogICovCi0vKiBBUkdTVVNFRCAqLwogc3Rh
dGljIGludAogUkVBRChhcCkKIAlzdHJ1Y3Qgdm9wX3JlYWRfYXJncyAvKiB7
CkBAIC02NSw4ICs2NSw4IEBACiAJZGFkZHJfdCBsYm4sIG5leHRsYm47CiAJ
b2ZmX3QgYnl0ZXNpbmZpbGU7CiAJbG9uZyBzaXplLCB4ZmVyc2l6ZSwgYmxr
b2Zmc2V0OwotCWludCBlcnJvciwgb3JpZ19yZXNpZDsKLQlpbnQgc2VxY291
bnQgPSBhcC0+YV9pb2ZsYWcgPj4gSU9fU0VRU0hJRlQ7CisJaW50IGVycm9y
LCBvcmlnX3Jlc2lkLCBzZXFjb3VudDsKKwlzZXFjb3VudCA9IGFwLT5hX2lv
ZmxhZyA+PiBJT19TRVFTSElGVDsKIAl1X3Nob3J0IG1vZGU7CiAKIAl2cCA9
IGFwLT5hX3ZwOwpAQCAtODQsMTEgKzg0LDE0IEBACiAJfSBlbHNlIGlmICh2
cC0+dl90eXBlICE9IFZSRUcgJiYgdnAtPnZfdHlwZSAhPSBWRElSKQogCQlw
YW5pYygiJXM6IHR5cGUgJWQiLCBSRUFEX1MsIHZwLT52X3R5cGUpOwogI2Vu
ZGlmCi0JZnMgPSBpcC0+SV9GUzsKLQlpZiAoKHVvZmZfdCl1aW8tPnVpb19v
ZmZzZXQgPiBmcy0+ZnNfbWF4ZmlsZXNpemUpCi0JCXJldHVybiAoRUZCSUcp
OwotCiAJb3JpZ19yZXNpZCA9IHVpby0+dWlvX3Jlc2lkOworCUtBU1NFUlQo
b3JpZ19yZXNpZCA+PSAwLCAoImV4dDJfcmVhZDogdWlvLT51aW9fcmVzaWQg
PCAwIikpOworCWlmIChvcmlnX3Jlc2lkID09IDApCisJCXJldHVybiAoMCk7
CisJS0FTU0VSVCh1aW8tPnVpb19vZmZzZXQgPj0gMCwgKCJleHQyX3JlYWQ6
IHVpby0+dWlvX29mZnNldCA8IDAiKSk7CisJZnMgPSBpcC0+SV9GUzsKKwlp
ZiAodWlvLT51aW9fb2Zmc2V0IDwgaXAtPmlfc2l6ZSAmJiB1aW8tPnVpb19v
ZmZzZXQgPj0gZnMtPmZzX21heGZpbGVzaXplKQorCQlyZXR1cm4gKEVPVkVS
RkxPVyk7CiAJZm9yIChlcnJvciA9IDAsIGJwID0gTlVMTDsgdWlvLT51aW9f
cmVzaWQgPiAwOyBicCA9IE5VTEwpIHsKIAkJaWYgKChieXRlc2luZmlsZSA9
IGlwLT5pX3NpemUgLSB1aW8tPnVpb19vZmZzZXQpIDw9IDApCiAJCQlicmVh
azsKQEAgLTEwNiw5ICsxMDksOCBAQAogCQlpZiAobGJsa3Rvc2l6ZShmcywg
bmV4dGxibikgPj0gaXAtPmlfc2l6ZSkKIAkJCWVycm9yID0gYnJlYWQodnAs
IGxibiwgc2l6ZSwgTk9DUkVELCAmYnApOwogCQllbHNlIGlmICgodnAtPnZf
bW91bnQtPm1udF9mbGFnICYgTU5UX05PQ0xVU1RFUlIpID09IDApCi0JCQll
cnJvciA9IGNsdXN0ZXJfcmVhZCh2cCwKLQkJCSAgICBpcC0+aV9zaXplLCBs
Ym4sIHNpemUsIE5PQ1JFRCwKLQkJCSAgICB1aW8tPnVpb19yZXNpZCwgKGFw
LT5hX2lvZmxhZyA+PiBJT19TRVFTSElGVCksICZicCk7CisJCQllcnJvciA9
IGNsdXN0ZXJfcmVhZCh2cCwgaXAtPmlfc2l6ZSwgbGJuLCBzaXplLCBOT0NS
RUQsCisJCQkgICAgYmxrb2Zmc2V0ICsgdWlvLT51aW9fcmVzaWQsIHNlcWNv
dW50LCAmYnApOwogCQllbHNlIGlmIChzZXFjb3VudCA+IDEpIHsKIAkJCWlu
dCBuZXh0c2l6ZSA9IEJMS1NJWkUoZnMsIGlwLCBuZXh0bGJuKTsKIAkJCWVy
cm9yID0gYnJlYWRuKHZwLCBsYm4sCkBAIC0xMzQsOCArMTM2LDggQEAKIAkJ
CQlicmVhazsKIAkJCXhmZXJzaXplID0gc2l6ZTsKIAkJfQotCQllcnJvciA9
Ci0JCSAgICB1aW9tb3ZlKChjaGFyICopYnAtPmJfZGF0YSArIGJsa29mZnNl
dCwgKGludCl4ZmVyc2l6ZSwgdWlvKTsKKwkJZXJyb3IgPSB1aW9tb3ZlKChj
aGFyICopYnAtPmJfZGF0YSArIGJsa29mZnNldCwKKwkJCShpbnQpeGZlcnNp
emUsIHVpbyk7CiAJCWlmIChlcnJvcikKIAkJCWJyZWFrOwogCkBAIC0xNDMs
NyArMTQ1LDcgQEAKIAl9CiAJaWYgKGJwICE9IE5VTEwpCiAJCWJxcmVsc2Uo
YnApOwotCWlmIChvcmlnX3Jlc2lkID4gMCAmJiAoZXJyb3IgPT0gMCB8fCB1
aW8tPnVpb19yZXNpZCAhPSBvcmlnX3Jlc2lkKSAmJgorCWlmICgoZXJyb3Ig
PT0gMCB8fCB1aW8tPnVpb19yZXNpZCAhPSBvcmlnX3Jlc2lkKSAmJgogCSAg
ICAodnAtPnZfbW91bnQtPm1udF9mbGFnICYgTU5UX05PQVRJTUUpID09IDAp
CiAJCWlwLT5pX2ZsYWcgfD0gSU5fQUNDRVNTOwogCXJldHVybiAoZXJyb3Ip
OwpAQCAtMTY5LDExICsxNzEsMTAgQEAKIAlzdHJ1Y3QgdGhyZWFkICp0ZDsK
IAlkYWRkcl90IGxibjsKIAlvZmZfdCBvc2l6ZTsKLQlpbnQgc2VxY291bnQ7
Ci0JaW50IGJsa29mZnNldCwgZXJyb3IsIGZsYWdzLCBpb2ZsYWcsIHJlc2lk
LCBzaXplLCB4ZmVyc2l6ZTsKKwlpbnQgYmxrb2Zmc2V0LCBlcnJvciwgZmxh
Z3MsIGlvZmxhZywgcmVzaWQsIHNpemUsIHNlcWNvdW50LCB4ZmVyc2l6ZTsK
IAogCWlvZmxhZyA9IGFwLT5hX2lvZmxhZzsKLQlzZXFjb3VudCA9IGFwLT5h
X2lvZmxhZyA+PiBJT19TRVFTSElGVDsKKwlzZXFjb3VudCA9IGlvZmxhZyA+
PiBJT19TRVFTSElGVDsKIAl1aW8gPSBhcC0+YV91aW87CiAJdnAgPSBhcC0+
YV92cDsKIAlpcCA9IFZUT0kodnApOwpAQCAtMTk0LDE1ICsxOTUsMTUgQEAK
IAkJYnJlYWs7CiAJY2FzZSBWRElSOgogCQlpZiAoKGlvZmxhZyAmIElPX1NZ
TkMpID09IDApCi0JCQlwYW5pYygiJXM6IG5vbnN5bmMgZGlyIHdyaXRlIiwg
V1JJVEVfUyk7CisJCQlwYW5pYygiZXh0Ml93cml0ZTogbm9uc3luYyBkaXIg
d3JpdGUiKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJcGFuaWMoIiVzOiB0
eXBlIiwgV1JJVEVfUyk7CisJCXBhbmljKCJleHQyX3dyaXRlOiB0eXBlICVw
ICVkICglamQsJWQpIiwgKHZvaWQgKil2cCwgdnAtPnZfdHlwZSwKKwkJCShp
bnRtYXhfdCl1aW8tPnVpb19vZmZzZXQsIHVpby0+dWlvX3Jlc2lkKTsKIAl9
CiAKIAlmcyA9IGlwLT5JX0ZTOwotCWlmICh1aW8tPnVpb19vZmZzZXQgPCAw
IHx8Ci0JICAgICh1b2ZmX3QpdWlvLT51aW9fb2Zmc2V0ICsgdWlvLT51aW9f
cmVzaWQgPiBmcy0+ZnNfbWF4ZmlsZXNpemUpCisJaWYgKCh1b2ZmX3QpdWlv
LT51aW9fb2Zmc2V0ICsgdWlvLT51aW9fcmVzaWQgPiBmcy0+ZnNfbWF4Zmls
ZXNpemUpCiAJCXJldHVybiAoRUZCSUcpOwogCS8qCiAJICogTWF5YmUgdGhp
cyBzaG91bGQgYmUgYWJvdmUgdGhlIHZub2RlIG9wIGNhbGwsIGJ1dCBzbyBs
b25nIGFzCkBAIC0yMzYsMjYgKzIzNywxOSBAQAogCiAJCS8qCiAJCSAqIEF2
b2lkIGEgZGF0YS1jb25zaXN0ZW5jeSByYWNlIGJldHdlZW4gd3JpdGUoKSBh
bmQgbW1hcCgpCi0JCSAqIGJ5IGVuc3VyaW5nIHRoYXQgbmV3bHkgYWxsb2Nh
dGVkIGJsb2NrcyBhcmUgemVyb2QuICBUaGUKKwkJICogYnkgZW5zdXJpbmcg
dGhhdCBuZXdseSBhbGxvY2F0ZWQgYmxvY2tzIGFyZSB6ZXJvZWQuICBUaGUK
IAkJICogcmFjZSBjYW4gb2NjdXIgZXZlbiBpbiB0aGUgY2FzZSB3aGVyZSB0
aGUgd3JpdGUgY292ZXJzCiAJCSAqIHRoZSBlbnRpcmUgYmxvY2suCiAJCSAq
LwogCQlmbGFncyB8PSBCX0NMUkJVRjsKLSNpZiAwCi0JCWlmIChmcy0+c19m
cmFnX3NpemUgPiB4ZmVyc2l6ZSkKLQkJCWZsYWdzIHw9IEJfQ0xSQlVGOwot
CQllbHNlCi0JCQlmbGFncyAmPSB+Ql9DTFJCVUY7Ci0jZW5kaWYKIAotCQll
cnJvciA9IGV4dDJfYmFsbG9jKGlwLAotCQkgICAgbGJuLCBibGtvZmZzZXQg
KyB4ZmVyc2l6ZSwgYXAtPmFfY3JlZCwgJmJwLCBmbGFncyk7CisJCWVycm9y
ID0gZXh0Ml9iYWxsb2MoaXAsIGxibiwgYmxrb2Zmc2V0ICsgeGZlcnNpemUs
CisJCSAgICBhcC0+YV9jcmVkLCAmYnAsIGZsYWdzKTsKIAkJaWYgKGVycm9y
KQogCQkJYnJlYWs7CiAKLQkJaWYgKHVpby0+dWlvX29mZnNldCArIHhmZXJz
aXplID4gaXAtPmlfc2l6ZSkgeworCQlpZiAodWlvLT51aW9fb2Zmc2V0ICsg
eGZlcnNpemUgPiBpcC0+aV9zaXplKQogCQkJaXAtPmlfc2l6ZSA9IHVpby0+
dWlvX29mZnNldCArIHhmZXJzaXplOwotCQl9CiAKIAkJc2l6ZSA9IEJMS1NJ
WkUoZnMsIGlwLCBsYm4pIC0gYnAtPmJfcmVzaWQ7CiAJCWlmIChzaXplIDwg
eGZlcnNpemUpCkBAIC0yNjQsNyArMjU4LDcgQEAKIAkJZXJyb3IgPQogCQkg
ICAgdWlvbW92ZSgoY2hhciAqKWJwLT5iX2RhdGEgKyBibGtvZmZzZXQsIChp
bnQpeGZlcnNpemUsIHVpbyk7CiAJCWlmICgoaW9mbGFnICYgSU9fVk1JTykg
JiYKLQkJICAgKExJU1RfRklSU1QoJmJwLT5iX2RlcCkgPT0gTlVMTCkpIC8q
IGluIGV4dDJmcz8gKi8KKwkJICAgTElTVF9GSVJTVCgmYnAtPmJfZGVwKSA9
PSBOVUxMKSAvKiBpbiBleHQyZnM/ICovCiAJCQlicC0+Yl9mbGFncyB8PSBC
X1JFTEJVRjsKIAogCQlpZiAoaW9mbGFnICYgSU9fU1lOQykgewpAQCAtMjgy
LDEyICsyNzYsMTUgQEAKIAkJfQogCQlpZiAoZXJyb3IgfHwgeGZlcnNpemUg
PT0gMCkKIAkJCWJyZWFrOwotCQlpcC0+aV9mbGFnIHw9IElOX0NIQU5HRSB8
IElOX1VQREFURTsKIAl9CiAJLyoKIAkgKiBJZiB3ZSBzdWNjZXNzZnVsbHkg
d3JvdGUgYW55IGRhdGEsIGFuZCB3ZSBhcmUgbm90IHRoZSBzdXBlcnVzZXIK
IAkgKiB3ZSBjbGVhciB0aGUgc2V0dWlkIGFuZCBzZXRnaWQgYml0cyBhcyBh
IHByZWNhdXRpb24gYWdhaW5zdAogCSAqIHRhbXBlcmluZy4KKwkgKiBYWFgg
dG9vIGxhdGUsIHRoZSB0YW1wZXJlciBtYXkgaGF2ZSBvcGVuZWQgdGhlIGZp
bGUgd2hpbGUgd2UKKwkgKiB3ZXJlIHdyaXRpbmcgdGhlIGRhdGEgKG9yIGJl
Zm9yZSkuCisJICogWFhYIHRvbyBlYXJseSwgaWYgKGVycm9yICYmIGlvZmxh
ZyAmIElPX1VOSVQpIHRoZW4gd2Ugd2lsbAorCSAqIHVud3JpdGUgdGhlIGRh
dGEuCiAJICovCiAJaWYgKHJlc2lkID4gdWlvLT51aW9fcmVzaWQgJiYgYXAt
PmFfY3JlZCAmJiBhcC0+YV9jcmVkLT5jcl91aWQgIT0gMCkKIAkJaXAtPmlf
bW9kZSAmPSB+KElTVUlEIHwgSVNHSUQpOwpAQCAtMjk4LDcgKzI5NSwxMSBA
QAogCQkJdWlvLT51aW9fb2Zmc2V0IC09IHJlc2lkIC0gdWlvLT51aW9fcmVz
aWQ7CiAJCQl1aW8tPnVpb19yZXNpZCA9IHJlc2lkOwogCQl9Ci0JfSBlbHNl
IGlmIChyZXNpZCA+IHVpby0+dWlvX3Jlc2lkICYmIChpb2ZsYWcgJiBJT19T
WU5DKSkKLQkJZXJyb3IgPSBleHQyX3VwZGF0ZSh2cCwgMSk7CisJfQorCWlm
ICh1aW8tPnVpb19yZXNpZCAhPSByZXNpZCkgeworCQlpcC0+aV9mbGFnIHw9
IElOX0NIQU5HRSB8IElOX1VQREFURTsKKwkJaWYgKGlvZmxhZyAmIElPX1NZ
TkMpCisJCQllcnJvciA9IGV4dDJfdXBkYXRlKHZwLCAxKTsKKwl9CiAJcmV0
dXJuIChlcnJvcik7CiB9CmRpZmYgLXUgZXh0MmZzLm9yaWcvZXh0Ml92ZnNv
cHMuYyBleHQyZnMvZXh0Ml92ZnNvcHMuYwotLS0gZXh0MmZzLm9yaWcvZXh0
Ml92ZnNvcHMuYwkyMDA5LTA5LTEwIDEzOjA1OjMxLjAwMDAwMDAwMCArMDAw
MAorKysgZXh0MmZzL2V4dDJfdmZzb3BzLmMJMjAwOS0wOS0xMCAxMzo0MTow
OS4wMDAwMDAwMDAgKzAwMDAKQEAgLTE3MSw4ICsxNzEsNiBAQAogCQkJZmxh
Z3MgPSBXUklURUNMT1NFOwogCQkJaWYgKG1wLT5tbnRfZmxhZyAmIE1OVF9G
T1JDRSkKIAkJCQlmbGFncyB8PSBGT1JDRUNMT1NFOwotCQkJaWYgKHZmc19i
dXN5KG1wLCBMS19OT1dBSVQsIDAsIHRkKSkKLQkJCQlyZXR1cm4gKEVCVVNZ
KTsKIAkJCWVycm9yID0gZXh0Ml9mbHVzaGZpbGVzKG1wLCBmbGFncywgdGQp
OwogCQkJdmZzX3VuYnVzeShtcCwgdGQpOwogCQkJaWYgKCFlcnJvciAmJiBm
cy0+c193YXN2YWxpZCkgewpAQCAtNTAwLDYgKzQ5OCw3IEBACiAgKgk0KSBp
bnZhbGlkYXRlIGFsbCBpbmFjdGl2ZSB2bm9kZXMuCiAgKgk1KSBpbnZhbGlk
YXRlIGFsbCBjYWNoZWQgZmlsZSBkYXRhLgogICoJNikgcmUtcmVhZCBpbm9k
ZSBkYXRhIGZvciBhbGwgYWN0aXZlIHZub2Rlcy4KKyAqIFhYWCB3ZSBhcmUg
bWlzc2luZyBzb21lIHN0ZXBzLCBpbiBwYXJ0aWN1bGFyICMgMwogICovCiBz
dGF0aWMgaW50CiBleHQyX3JlbG9hZChzdHJ1Y3QgbW91bnQgKm1wLCBzdHJ1
Y3QgdGhyZWFkICp0ZCkKQEAgLTEwMDcsOCArMTAwNiw4IEBACiAJCSAqIHN0
aWxsIHplcm8sIGl0IHdpbGwgYmUgdW5saW5rZWQgYW5kIHJldHVybmVkIHRv
IHRoZSBmcmVlCiAJCSAqIGxpc3QgYnkgdnB1dCgpLgogCQkgKi8KLQkJdnB1
dCh2cCk7CiAJCWJyZWxzZShicCk7CisJCXZwdXQodnApOwogCQkqdnBwID0g
TlVMTDsKIAkJcmV0dXJuIChlcnJvcik7CiAJfQpAQCAtMTAzMiw3ICsxMDMx
LDcgQEAKIC8qCiAJZXh0Ml9wcmludF9pbm9kZShpcCk7CiAqLwotCWJyZWxz
ZShicCk7CisJYnFyZWxzZShicCk7CiAKIAkvKgogCSAqIEluaXRpYWxpemUg
dGhlIHZub2RlIGZyb20gdGhlIGlub2RlLCBjaGVjayBmb3IgYWxpYXNlcy4K
--0-1580472039-1252610897=:7136--
More information about the freebsd-fs
mailing list