kern/142924: Small cleanup for the inode struct in ext2fs (based on UFS)

Pedro F. Giffuni giffunip at tutopia.com
Thu Jan 28 18:30:16 UTC 2010


The following reply was made to PR kern/142924; it has been noted by GNATS.

From: "Pedro F. Giffuni" <giffunip at tutopia.com>
To: FreeBSD-gnats-submit at FreeBSD.org, freebsd-bugs at FreeBSD.org
Cc:  
Subject: Re: kern/142924: Small cleanup for the inode struct in ext2fs (based on UFS)
Date: Thu, 28 Jan 2010 10:22:25 -0800 (PST)

 --0-1299979072-1264702945=:12268
 Content-Type: text/plain; charset=us-ascii
 
 Include two more simple patches from ufs_lookup.c:
 
 CVS 1.54:
 When compacting directories, ufs_direnter() always trusted DIRSIZ()
 to supply the number of bytes to be bcopy()'d to move an entry. If
 d_ino == 0 however, DIRSIZ() is not guaranteed to return a sensible
 length, so ufs_direnter could end up corrupting a directory during
 compaction.
 
 CVS 1.45:
 Extend the sanity checks in ufs_lookup to ensure that each directory
 entry fits within its DIRBLKSIZ block.
 _______
 
 These were meant to fix issues found with dirhash on UFS but ext2fs
 still works here with those changes so I think it's good to have
 them, JIC we end up bringing over dirhash to ext2fs.
 
 
       
 --0-1299979072-1264702945=:12268
 Content-Type: application/octet-stream; name=patch-ext2fs
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename=patch-ext2fs
 
 ZGlmZiAtcnUgZXh0MmZzLmJzZC9leHQyX2xvb2t1cC5jIGV4dDJmcy9leHQy
 X2xvb2t1cC5jCi0tLSBleHQyZnMuYnNkL2V4dDJfbG9va3VwLmMJMjAxMC0w
 MS0xNyAxOTowMjozMC4wMDAwMDAwMDAgKzAwMDAKKysrIGV4dDJmcy9leHQy
 X2xvb2t1cC5jCTIwMTAtMDEtMjQgMTk6Mjc6NTIuMDAwMDAwMDAwICswMDAw
 CkBAIC0zNDcsNiArMzQ3LDcgQEAKIAkJc2xvdG5lZWRlZCA9IChzaXplb2Yo
 c3RydWN0IGRpcmVjdCkgLSBNQVhOQU1MRU4gKwogCQkJY25wLT5jbl9uYW1l
 bGVuICsgMykgJn4gMzsgKi8KIAl9CisJYm1hc2sgPSBWRlNUT0VYVDIodmRw
 LT52X21vdW50KS0+dW1fbW91bnRwLT5tbnRfc3RhdC5mX2lvc2l6ZSAtIDE7
 CiAKIAkvKgogCSAqIElmIHRoZXJlIGlzIGNhY2hlZCBpbmZvcm1hdGlvbiBv
 biBhIHByZXZpb3VzIHNlYXJjaCBvZgpAQCAtMzU5LDkgKzM2MCw4IEBACiAJ
 ICogcHJvZmlsaW5nIHRpbWUgYW5kIGhlbmNlIGhhcyBiZWVuIHJlbW92ZWQg
 aW4gdGhlIGludGVyZXN0CiAJICogb2Ygc2ltcGxpY2l0eS4KIAkgKi8KLQli
 bWFzayA9IFZGU1RPRVhUMih2ZHAtPnZfbW91bnQpLT51bV9tb3VudHAtPm1u
 dF9zdGF0LmZfaW9zaXplIC0gMTsKIAlpZiAobmFtZWlvcCAhPSBMT09LVVAg
 fHwgaV9kaXJvZmYgPT0gMCB8fAotCSAgICBpX2Rpcm9mZiA+IGRwLT5pX3Np
 emUpIHsKKwkgICAgaV9kaXJvZmYgPj0gZHAtPmlfc2l6ZSkgewogCQllbnRy
 eW9mZnNldGluYmxvY2sgPSAwOwogCQlpX29mZnNldCA9IDA7CiAJCW51bWRp
 cnBhc3NlcyA9IDE7CkBAIC00MDgsOSArNDA4LDkgQEAKIAkJICogZGlyZWN0
 b3J5LiBDb21wbGV0ZSBjaGVja3MgY2FuIGJlIHJ1biBieSBzZXR0aW5nCiAJ
 CSAqICJ2ZnMuZTJmcy5kaXJjaGsiIHRvIGJlIHRydWUuCiAJCSAqLwotCQll
 cCA9IChzdHJ1Y3QgZXh0MmZzX2RpcmVjdF8yICopCi0JCQkoKGNoYXIgKili
 cC0+Yl9kYXRhICsgZW50cnlvZmZzZXRpbmJsb2NrKTsKLQkJaWYgKGVwLT5l
 MmRfcmVjbGVuID09IDAgfHwKKwkJZXAgPSAoc3RydWN0IGV4dDJmc19kaXJl
 Y3RfMiAqKSgoY2hhciAqKWJwLT5iX2RhdGEgKyBlbnRyeW9mZnNldGluYmxv
 Y2spOworCQlpZiAoZXAtPmUyZF9yZWNsZW4gPT0gMCB8fCBlcC0+ZTJkX3Jl
 Y2xlbiA+CisJCSAgICBESVJCTEtTSVogLSAoZW50cnlvZmZzZXRpbmJsb2Nr
 ICYgKERJUkJMS1NJWiAtIDEpKSB8fAogCQkgICAgKGRpcmNoayAmJiBleHQy
 X2RpcmJhZGVudHJ5KHZkcCwgZXAsIGVudHJ5b2Zmc2V0aW5ibG9jaykpKSB7
 CiAJCQlpbnQgaTsKIAkJCWV4dDJfZGlyYmFkKGRwLCBpX29mZnNldCwgIm1h
 bmdsZWQgZW50cnkiKTsKQEAgLTU1MCwxMCArNTUwLDEwIEBACiAJICogQ2hl
 Y2sgdGhhdCBkaXJlY3RvcnkgbGVuZ3RoIHByb3Blcmx5IHJlZmxlY3RzIHBy
 ZXNlbmNlCiAJICogb2YgdGhpcyBlbnRyeS4KIAkgKi8KLQlpZiAoZW50cnlv
 ZmZzZXRpbmJsb2NrICsgRVhUMl9ESVJfUkVDX0xFTihlcC0+ZTJkX25hbWxl
 bikKKwlpZiAoZHAtPmlfb2Zmc2V0ICsgRVhUMl9ESVJfUkVDX0xFTihlcC0+
 ZTJkX25hbWxlbikKIAkJPiBkcC0+aV9zaXplKSB7CiAJCWV4dDJfZGlyYmFk
 KGRwLCBpX29mZnNldCwgImlfc2l6ZSB0b28gc21hbGwiKTsKLQkJZHAtPmlf
 c2l6ZSA9IGVudHJ5b2Zmc2V0aW5ibG9jaytFWFQyX0RJUl9SRUNfTEVOKGVw
 LT5lMmRfbmFtbGVuKTsKKwkJZHAtPmlfc2l6ZSA9IGRwLT5pX29mZnNldCtF
 WFQyX0RJUl9SRUNfTEVOKGVwLT5lMmRfbmFtbGVuKTsKIAkJZHAtPmlfZmxh
 ZyB8PSBJTl9DSEFOR0UgfCBJTl9VUERBVEU7CiAJfQogCWJyZWxzZShicCk7
 CkBAIC04NTUsMTcgKzg1NSwzMCBAQAogCSAqIHNwYWNlLgogCSAqLwogCWVw
 ID0gKHN0cnVjdCBleHQyZnNfZGlyZWN0XzIgKilkaXJidWY7Ci0JZHNpemUg
 PSBFWFQyX0RJUl9SRUNfTEVOKGVwLT5lMmRfbmFtbGVuKTsKKwlkc2l6ZSA9
 IGVwLT5lMmRfaW5vID8gRVhUMl9ESVJfUkVDX0xFTihlcC0+ZTJkX25hbWxl
 bikgOiAwOwogCXNwYWNlZnJlZSA9IGVwLT5lMmRfcmVjbGVuIC0gZHNpemU7
 CiAJZm9yIChsb2MgPSBlcC0+ZTJkX3JlY2xlbjsgbG9jIDwgZHAtPmlfY291
 bnQ7ICkgewogCQluZXAgPSAoc3RydWN0IGV4dDJmc19kaXJlY3RfMiAqKShk
 aXJidWYgKyBsb2MpOwotCQlpZiAoZXAtPmUyZF9pbm8pIHsKLQkJCS8qIHRy
 aW0gdGhlIGV4aXN0aW5nIHNsb3QgKi8KLQkJCWVwLT5lMmRfcmVjbGVuID0g
 ZHNpemU7Ci0JCQllcCA9IChzdHJ1Y3QgZXh0MmZzX2RpcmVjdF8yICopKChj
 aGFyICopZXAgKyBkc2l6ZSk7Ci0JCX0gZWxzZSB7Ci0JCQkvKiBvdmVyd3Jp
 dGU7IG5vdGhpbmcgdGhlcmU7IGhlYWRlciBpcyBvdXJzICovCi0JCQlzcGFj
 ZWZyZWUgKz0gZHNpemU7CisKKwkJLyogdHJpbSB0aGUgZXhpc3Rpbmcgc2xv
 dCAoTkI6IGRzaXplIG1heSBiZSB6ZXJvKS4gKi8KKwkJZXAtPmUyZF9yZWNs
 ZW4gPSBkc2l6ZTsKKwkJZXAgPSAoc3RydWN0IGV4dDJmc19kaXJlY3RfMiAq
 KSgoY2hhciAqKWVwICsgZHNpemUpOworCisJCS8qIFJlYWQgbmVwLT5lMmRf
 cmVjbGVuIG5vdyBhcyB0aGUgYmNvcHkoKSBtYXkgY2xvYmJlciBpdC4gKi8K
 KwkJbG9jICs9IG5lcC0+ZTJkX3JlY2xlbjsKKwkJaWYgKG5lcC0+ZTJkX2lu
 byA9PSAwKSB7CisJCQkvKgorCQkJICogQSBtaWQtYmxvY2sgdW51c2VkIGVu
 dHJ5LiBTdWNoIGVudHJpZXMgYXJlCisJCQkgKiBuZXZlciBjcmVhdGVkIGJ5
 IHRoZSBrZXJuZWwsIGJ1dCBmc2NrCisJCQkgKiBjYW4gY3JlYXRlIHRoZW0g
 KGFuZCBub3QgZml4IHRoZW0pLgorCQkJICoKKwkJCSAqIEFkZCB1cCB0aGUg
 ZnJlZSBzcGFjZSwgYW5kIGluaXRpYWxpc2UgdGhlCisJCQkgKiByZWxvY2F0
 ZWQgZW50cnkgc2luY2Ugd2UgZG9uJ3QgYmNvcHkgaXQuCisJCQkgKi8KKwkJ
 CXNwYWNlZnJlZSArPSBuZXAtPmUyZF9yZWNsZW47CisJCQllcC0+ZTJkX2lu
 byA9IDA7CisJCQlkc2l6ZSA9IDA7CisJCQljb250aW51ZTsKIAkJfQogCQlk
 c2l6ZSA9IEVYVDJfRElSX1JFQ19MRU4obmVwLT5lMmRfbmFtbGVuKTsKIAkJ
 c3BhY2VmcmVlICs9IG5lcC0+ZTJkX3JlY2xlbiAtIGRzaXplOwpkaWZmIC1y
 dSBleHQyZnMuYnNkL2V4dDJfdmZzb3BzLmMgZXh0MmZzL2V4dDJfdmZzb3Bz
 LmMKLS0tIGV4dDJmcy5ic2QvZXh0Ml92ZnNvcHMuYwkyMDEwLTAxLTE3IDE5
 OjAyOjU2LjAwMDAwMDAwMCArMDAwMAorKysgZXh0MmZzL2V4dDJfdmZzb3Bz
 LmMJMjAxMC0wMS0xOCAxNTo0MzoyMC4wMDAwMDAwMDAgKzAwMDAKQEAgLTk0
 NSw5ICs5NDUsOCBAQAogCX0KIAogCS8qCi0JICogRmluaXNoIGlub2RlIGlu
 aXRpYWxpemF0aW9uIG5vdyB0aGF0IGFsaWFzaW5nIGhhcyBiZWVuIHJlc29s
 dmVkLgorCSAqIEZpbmlzaCBpbm9kZSBpbml0aWFsaXphdGlvbi4KIAkgKi8K
 LQlpcC0+aV9kZXZ2cCA9IHVtcC0+dW1fZGV2dnA7CiAKIAkvKgogCSAqIFNl
 dCB1cCBhIGdlbmVyYXRpb24gbnVtYmVyIGZvciB0aGlzIGlub2RlIGlmIGl0
 IGRvZXMgbm90CmRpZmYgLXJ1IGV4dDJmcy5ic2QvaW5vZGUuaCBleHQyZnMv
 aW5vZGUuaAotLS0gZXh0MmZzLmJzZC9pbm9kZS5oCTIwMTAtMDEtMTcgMTk6
 MDM6MjEuMDAwMDAwMDAwICswMDAwCisrKyBleHQyZnMvaW5vZGUuaAkyMDEw
 LTAxLTE4IDE1OjQzOjIwLjAwMDAwMDAwMCArMDAwMApAQCAtNjIsNyArNjIs
 NiBAQAogICovCiBzdHJ1Y3QgaW5vZGUgewogCXN0cnVjdAl2bm9kZSAgKmlf
 dm5vZGU7LyogVm5vZGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5vZGUuICov
 Ci0Jc3RydWN0CXZub2RlICAqaV9kZXZ2cDsvKiBWbm9kZSBmb3IgYmxvY2sg
 SS9PLiAqLwogCXN0cnVjdAlleHQybW91bnQgKmlfdW1wOwogCXVfaW50MzJf
 dCBpX2ZsYWc7CS8qIGZsYWdzLCBzZWUgYmVsb3cgKi8KIAlpbm9fdAkgIGlf
 bnVtYmVyOwkvKiBUaGUgaWRlbnRpdHkgb2YgdGhlIGlub2RlLiAqLwpAQCAt
 MTQzLDYgKzE0Miw5IEBACiAjZGVmaW5lCUlOX1NQQUNFQ09VTlRFRAkweDAw
 ODAJCS8qIEJsb2NrcyB0byBiZSBmcmVlZCBpbiBmcmVlIGNvdW50LiAqLwog
 I2RlZmluZSBJTl9MQVpZQUNDRVNTICAgMHgwMTAwCQkvKiBQcm9jZXNzIElO
 X0FDQ0VTUyBhZnRlciB0aGUKIAkJCQkJICAgIHN1c3BlbnNpb24gZmluaXNo
 ZWQgKi8KKworI2RlZmluZSBpX2RldnZwIGlfdW1wLT51bV9kZXZ2cAorCiAj
 aWZkZWYgX0tFUk5FTAogLyoKICAqIFN0cnVjdHVyZSB1c2VkIHRvIHBhc3Mg
 YXJvdW5kIGxvZ2ljYWwgYmxvY2sgcGF0aHMgZ2VuZXJhdGVkIGJ5Cg==
 
 --0-1299979072-1264702945=:12268--


More information about the freebsd-fs mailing list