_nfs_display_fhandle_hash: undefined reference to `crc32_le'
Subsystems (2)
This started showing up in linux-next last week:
LD .tmp_vmlinux1fs/built-in.o: In function `_nfs_display_fhandle_hash':
/scratch/kisskb/src/fs/nfs/inode.c:1063: undefined reference to `crc32_le' make[1]: *** [.tmp_vmlinux1] Error 1
Target is an mpc8xx board:
http://kisskb.ellerman.id.au/kisskb/target/2679/
I tried to run an automated bisect on it, but there appears to be build failures in the bisection range, in addition to the above link error (i.e. points I'd use "skip" on if I wasn't using "git bisect run ...")
# good: [b030fb0bb113316cc6f56779388b8572ab0699da] SUNRPC: use proper network namespace in rpcbind RPCBPROC_GETADDR procedure git bisect good b030fb0bb113316cc6f56779388b8572ab0699da
# bad: [5247fab5c82779174d50590e0200bf532248a8a1] SUNRPC: pass network namespace to service registering routines git bisect bad 5247fab5c82779174d50590e0200bf532248a8a1
Even without the concrete trigger commit, a suggested possible fix (tested locally) is below.
Paul.
---
From 21b77ae0373725bd2c60eca065e77c4d2f0fdbfa Mon Sep 17 00:00:00 2001
From: Paul Gortmaker <[email protected]>
Date: Sun, 18 Mar 2012 14:07:42 -0400
Subject: [PATCH] nfs: select CRC32 for when NFS is enabled for crc32_le
To avoid the following link errors:
LD .tmp_vmlinux1fs/built-in.o: In function `_nfs_display_fhandle_hash':fs/nfs/inode.c:1063: undefined reference to `crc32_le' make[1]: *** [.tmp_vmlinux1] Error 1
fs/nfs/Kconfig +1 -0
@@ -3,6 +3,7 @@ config NFS_FS depends on INET && FILE_LOCKING select LOCKD select SUNRPC + select CRC32 select NFS_ACL_SUPPORT if NFS_V3_ACL help Choose Y here if you want to access files residing on other
Signature · 1 line
1.7.9.1
Oops! The fix is ok, in that it will work, but I'm not sure we want to pull in that type of dependency for a debug message.
Maybe it'd be more appropriate to do something like this:
From 371ebd38717cd34a58d167909b56a216db288f83 Mon Sep 17 00:00:00 2001
From: Weston Andros Adamson <[email protected]>
Date: Mon, 19 Mar 2012 11:31:12 -0400
Subject: [PATCH] if CRC32 isn't defined just return 0 for fh hash
--- fs/nfs/inode.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
fs/nfs/inode.c +4 -0
@@ -1060,7 +1060,11 @@ u32 _nfs_display_fhandle_hash(const struct nfs_fh *fh) {/* wireshark uses 32-bit AUTODIN crc and does a bitwise * not on the result */ +#ifdef CONFIG_CRC32 return ~crc32 (0xFFFFFFFF , &fh->data[0 ], fh->size); +#else +return 0 ; +#endif }/*
Signature · 7 lines
1.7.4.4 Or (if possible) define the dependency iff NFS_FS and RPC_DEBUG are defined. I'm sure Trond has an opinion on this. -dros
Quoted 60 lines · Paul Gortmaker
This started showing up in linux-next last week:
LD .tmp_vmlinux1
fs/built-in.o: In function `_nfs_display_fhandle_hash':
/scratch/kisskb/src/fs/nfs/inode.c:1063: undefined reference to `crc32_le' make[1]: *** [.tmp_vmlinux1] Error 1Target is an mpc8xx board:
http://kisskb.ellerman.id.au/kisskb/target/2679/
I tried to run an automated bisect on it, but there appears to be build failures in the bisection range, in addition to the above link error (i.e. points I'd use "skip" on if I wasn't using "git bisect run ...")
# good: [
b030fb0bb113316cc6f56779388b8572ab0699da] SUNRPC: use proper network namespace in rpcbindRPCBPROC_GETADDRprocedure git bisect goodb030fb0bb113316cc6f56779388b8572ab0699da
# bad: [5247fab5c82779174d50590e0200bf532248a8a1] SUNRPC: pass network namespace to service registering routines git bisect bad5247fab5c82779174d50590e0200bf532248a8a1Even without the concrete trigger commit, a suggested possible fix (tested locally) is below.
Paul.
---From
21b77ae0373725bd2c60eca065e77c4d2f0fdbfaMon Sep 17 00:00:00 2001
From: Paul Gortmaker <[email protected]>
Date: Sun, 18 Mar 2012 14:07:42 -0400
Subject: [PATCH] nfs: select CRC32 for when NFS is enabled forcrc32_leTo avoid the following link errors:
LD .tmp_vmlinux1
fs/built-in.o: In function `_nfs_display_fhandle_hash':fs/nfs/inode.c:1063: undefined reference to `crc32_le' make[1]: *** [.tmp_vmlinux1] Error 1Signed-off-by Paul Gortmaker <[email protected]>fs/nfs/Kconfig +1
-0@@ -3,6 +3,7 @@ config NFS_FS depends on INET && FILE_LOCKING select LOCKD select SUNRPC + select CRC32 select NFS_ACL_SUPPORT if NFS_V3_ACL help Choose Y here if you want to access files residing on otherSignature · 6 lines
1.7.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Adamson, Dros wrote:
Oops! The fix is ok, in that it will work, but I'm not sure we want to pull in that type of dependency for a debug message.
crc32 isn't that much of a burden. I'm surprised it's even optional. Your proposed fix gives a useless hash and will result in confusion. I say pull in crc32.
T24gTW9uLCAyMDEyLTAzLTE5IGF0IDE1OjM1ICswMDAwLCBBZGFtc29uLCBEcm9zIHdyb3RlOg0K PiBPb3BzISAgVGhlIGZpeCBpcyBvaywgaW4gdGhhdCBpdCB3aWxsIHdvcmssIGJ1dCBJJ20gbm90 IHN1cmUgd2Ugd2FudCB0byBwdWxsIGluIHRoYXQgdHlwZSBvZiBkZXBlbmRlbmN5IGZvciBhIGRl YnVnIG1lc3NhZ2UuDQo+IA0KPiBNYXliZSBpdCdkIGJlIG1vcmUgYXBwcm9wcmlhdGUgdG8gZG8g c29tZXRoaW5nIGxpa2UgdGhpczoNCj4gDQo+IEZyb20gMzcxZWJkMzg3MTdjZDM0YTU4ZDE2Nzkw OWI1NmEyMTZkYjI4OGY4MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCj4gRnJvbTogV2VzdG9u IEFuZHJvcyBBZGFtc29uIDxkcm9zQG5ldGFwcC5jb20+DQo+IERhdGU6IE1vbiwgMTkgTWFyIDIw MTIgMTE6MzE6MTIgLTA0MDANCj4gU3ViamVjdDogW1BBVENIXSBpZiBDUkMzMiBpc24ndCBkZWZp bmVkIGp1c3QgcmV0dXJuIDAgZm9yIGZoIGhhc2gNCj4gDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBX ZXN0b24gQW5kcm9zIEFkYW1zb24gPGRyb3NAbmV0YXBwLmNvbT4NCj4gLS0tDQo+ICBmcy9uZnMv aW5vZGUuYyB8ICAgIDQgKysrKw0KPiAgMSBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyks IDAgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZnMvbmZzL2lub2RlLmMgYi9mcy9u ZnMvaW5vZGUuYw0KPiBpbmRleCAxYTE5ZjhkLi4wYzFjYTZhIDEwMDY0NA0KPiAtLS0gYS9mcy9u ZnMvaW5vZGUuYw0KPiArKysgYi9mcy9uZnMvaW5vZGUuYw0KPiBAQCAtMTA2MCw3ICsxMDYwLDEx IEBAIHUzMiBfbmZzX2Rpc3BsYXlfZmhhbmRsZV9oYXNoKGNvbnN0IHN0cnVjdCBuZnNfZmggKmZo KQ0KPiAgew0KPiAgICAgICAgIC8qIHdpcmVzaGFyayB1c2VzIDMyLWJpdCBBVVRPRElOIGNyYyBh bmQgZG9lcyBhIGJpdHdpc2UNCj4gICAgICAgICAgKiBub3Qgb24gdGhlIHJlc3VsdCAqLw0KPiAr I2lmZGVmIENPTkZJR19DUkMzMg0KPiAgICAgICAgIHJldHVybiB+Y3JjMzIoMHhGRkZGRkZGRiwg JmZoLT5kYXRhWzBdLCBmaC0+c2l6ZSk7DQo+ICsjZWxzZQ0KPiArICAgICAgIHJldHVybiAwOw0K PiArI2VuZGlmDQo+ICB9DQo+IA0KPiAgLyoNCg0KVGhhdCB3YXMgbXkgZmlyc3QgdGhvdWdodCwg YnV0IHRoZSBwcm9ibGVtIHdpdGggdGhlIGFib3ZlIGlzIHRoYXQgaXQNCmhpZGVzIHRoZSBDUkMz MiBkZXBlbmRlbmN5IGRlZXAgZG93biBpbiB0aGUgYm93ZWxzIG9mIHRoZSBORlMgY29kZS4NCg0K T0suIFdoYXQgc2F5IHdlIGp1c3QgYml0ZSB0aGUgYnVsbGV0LCBhbmQgYWRkIHRoZSBkcHJpbnRr KCkgaW50ZXJmYWNlIHRvDQpLYnVpbGQuIFRoYXQgd2lsbCBhbGxvdyBkaXN0cm9zIHRoYXQgZG9u J3Qgc2hpcCB0aGUgJ3JwY2RlYnVnJyB1dGlsaXR5DQp0byB0dXJuIG9mZiBkcHJpbnRrKCkgYW5k IHdpbGwgYWxsb3cgdXMgdG8gc2VsZWN0IENSQzMyIGlmIGFuZCBvbmx5IGlmDQp3ZSByZWFsbHkg bmVlZCBpdC4NCklPVzogU29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2luZzoNCg0KDQo4PC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQpGcm9tIDg1NWZhODk0YTJiMjRiOTg3MmI1MzViNzViMDRiODIxMjFmOTNiNzMgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxDQpGcm9tOiBUcm9uZCBNeWtsZWJ1c3QgPFRyb25kLk15a2xl YnVzdEBuZXRhcHAuY29tPg0KRGF0ZTogU3VuLCAxOCBNYXIgMjAxMiAxNDowNzo0MiAtMDQwMA0K U3ViamVjdDogW1BBVENIXSBTVU5SUEMvTkZTOiBBZGQgS2J1aWxkIGRlcGVuZGVuY2llcyBmb3Ig TkZTX0RFQlVHL1JQQ19ERUJVRw0KDQpUaGlzIGFsbG93cyB1cyB0byB0dXJuIG9uL29mZiB0aGUg ZHByaW50aygpIGRlYnVnZ2luZyBpbnRlcmZhY2VzIGZvcg0KdGhvc2UgZGlzdHJpYnV0aW9ucyB0 aGF0IGRvbid0IHNoaXAgdGhlICdycGNkZWJ1ZycgdXRpbGl0eS4NCkl0IGFsc28gYWxsb3dzIHVz IHRvIGFkZCBLYnVpbGQgZGVwZW5kZW5jaWVzLiBTcGVjaWZpY2FsbHksIHdlIGFscmVhZHkNCmtu b3cgdGhhdCBkcHJpbnRrKCkgaW4gZ2VuZXJhbCByZWxpZXMgb24gQ09ORklHX1NZU0NUTC4gTm93 IGl0IHR1cm5zIG91dA0KdGhhdCB0aGUgTkZTIGRwcmludGtzIGRlcGVuZCBvbiBDT05GSUdfQ1JD MzIgYWZ0ZXIgd2UgYWRkZWQgc3VwcG9ydA0KZm9yIHRoZSBmaWxlaGFuZGxlIGhhc2guDQoNClJl cG9ydGVkLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4N ClNpZ25lZC1vZmYtYnk6IFRyb25kIE15a2xlYnVzdCA8VHJvbmQuTXlrbGVidXN0QG5ldGFwcC5j b20+DQotLS0NCiBmcy9uZnMvS2NvbmZpZyAgICAgICAgICAgICAgIHwgICAgNiArKysrKysNCiBm cy9uZnMvaW5vZGUuYyAgICAgICAgICAgICAgIHwgICAgMiArLQ0KIGZzL25mcy9tb3VudF9jbG50 LmMgICAgICAgICAgfCAgICAyICstDQogZnMvbmZzL25mc3Jvb3QuYyAgICAgICAgICAgICB8ICAg IDIgKy0NCiBpbmNsdWRlL2xpbnV4L25mc19mcy5oICAgICAgIHwgICAxNyArKysrKysrKy0tLS0t LS0tLQ0KIGluY2x1ZGUvbGludXgvc3VucnBjL2RlYnVnLmggfCAgICAyICstDQogbmV0L3N1bnJw Yy9LY29uZmlnICAgICAgICAgICB8ICAgMTMgKysrKysrKysrKysrKw0KIDcgZmlsZXMgY2hhbmdl ZCwgMzEgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9mcy9u ZnMvS2NvbmZpZyBiL2ZzL25mcy9LY29uZmlnDQppbmRleCA3YmNlNjRjLi4yYTBlNmM1IDEwMDY0 NA0KLS0tIGEvZnMvbmZzL0tjb25maWcNCisrKyBiL2ZzL25mcy9LY29uZmlnDQpAQCAtMTQ0LDMg KzE0NCw5IEBAIGNvbmZpZyBORlNfVVNFX0tFUk5FTF9ETlMNCiAJZGVwZW5kcyBvbiBORlNfVjQg JiYgIU5GU19VU0VfTEVHQUNZX0ROUw0KIAlzZWxlY3QgRE5TX1JFU09MVkVSDQogCWRlZmF1bHQg eQ0KKw0KK2NvbmZpZyBORlNfREVCVUcNCisJYm9vbA0KKwlkZXBlbmRzIG9uIE5GU19GUyAmJiBT VU5SUENfREVCVUcNCisJc2VsZWN0IENSQzMyDQorCWRlZmF1bHQgeQ0KZGlmZiAtLWdpdCBhL2Zz L25mcy9pbm9kZS5jIGIvZnMvbmZzL2lub2RlLmMNCmluZGV4IDFhMTlmOGQuLjdiYjRkMTMgMTAw NjQ0DQotLS0gYS9mcy9uZnMvaW5vZGUuYw0KKysrIGIvZnMvbmZzL2lub2RlLmMNCkBAIC0xMDQ3 LDcgKzEwNDcsNyBAQCBzdHJ1Y3QgbmZzX2ZoICpuZnNfYWxsb2NfZmhhbmRsZSh2b2lkKQ0KIAly ZXR1cm4gZmg7DQogfQ0KIA0KLSNpZmRlZiBSUENfREVCVUcNCisjaWZkZWYgTkZTX0RFQlVHDQog LyoNCiAgKiBfbmZzX2Rpc3BsYXlfZmhhbmRsZV9oYXNoIC0gY2FsY3VsYXRlIHRoZSBjcmMzMiBo YXNoIGZvciB0aGUgZmlsZWhhbmRsZQ0KICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp biB0aGUgc2FtZSB3YXkgdGhhdCB3aXJlc2hhcmsgZG9lcw0KZGlmZiAtLWdpdCBhL2ZzL25mcy9t b3VudF9jbG50LmMgYi9mcy9uZnMvbW91bnRfY2xudC5jDQppbmRleCBiMzdjYTM0Li44ZTY1Yzdm IDEwMDY0NA0KLS0tIGEvZnMvbmZzL21vdW50X2NsbnQuYw0KKysrIGIvZnMvbmZzL21vdW50X2Ns bnQuYw0KQEAgLTE2LDcgKzE2LDcgQEANCiAjaW5jbHVkZSA8bGludXgvbmZzX2ZzLmg+DQogI2lu Y2x1ZGUgImludGVybmFsLmgiDQogDQotI2lmZGVmIFJQQ19ERUJVRw0KKyNpZmRlZiBORlNfREVC VUcNCiAjIGRlZmluZSBORlNEQkdfRkFDSUxJVFkJTkZTREJHX01PVU5UDQogI2VuZGlmDQogDQpk aWZmIC0tZ2l0IGEvZnMvbmZzL25mc3Jvb3QuYyBiL2ZzL25mcy9uZnNyb290LmMNCmluZGV4IGM0 NzQ0ZTEuLmNkM2M5MTAgMTAwNjQ0DQotLS0gYS9mcy9uZnMvbmZzcm9vdC5jDQorKysgYi9mcy9u ZnMvbmZzcm9vdC5jDQpAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBjaGFyIG5mc19leHBvcnRf cGF0aFtORlNfTUFYUEFUSExFTiArIDFdIF9faW5pdGRhdGEgPSAiIjsNCiAvKiBzZXJ2ZXI6ZXhw b3J0IHBhdGggc3RyaW5nIHBhc3NlZCB0byBzdXBlci5jICovDQogc3RhdGljIGNoYXIgbmZzX3Jv b3RfZGV2aWNlW05GU19NQVhQQVRITEVOICsgMV0gX19pbml0ZGF0YSA9ICIiOw0KIA0KLSNpZmRl ZiBSUENfREVCVUcNCisjaWZkZWYgTkZTX0RFQlVHDQogLyoNCiAgKiBXaGVuIHRoZSAibmZzcm9v dGRlYnVnIiBrZXJuZWwgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBzcGVjaWZpZWQsDQogICogZW5h YmxlIGRlYnVnZ2luZyBtZXNzYWdlcyBmb3IgTkZTUk9PVC4NCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L25mc19mcy5oIGIvaW5jbHVkZS9saW51eC9uZnNfZnMuaA0KaW5kZXggMGE2M2FiMi4u OGYyN2MyZSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvbmZzX2ZzLmgNCisrKyBiL2luY2x1 ZGUvbGludXgvbmZzX2ZzLmgNCkBAIC0zOCw2ICszOCwxMyBAQA0KIA0KICNpZmRlZiBfX0tFUk5F TF9fDQogDQorLyoNCisgKiBFbmFibGUgZHByaW50aygpIGRlYnVnZ2luZyBzdXBwb3J0IGZvciBu ZnMgY2xpZW50Lg0KKyAqLw0KKyNpZmRlZiBDT05GSUdfTkZTX0RFQlVHDQorIyBkZWZpbmUgTkZT X0RFQlVHDQorI2VuZGlmDQorDQogI2luY2x1ZGUgPGxpbnV4L2luLmg+DQogI2luY2x1ZGUgPGxp bnV4L21tLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4NCkBAIC0zOTEsNyArMzk4LDcg QEAgc3RhdGljIGlubGluZSB2b2lkIG5mc19mcmVlX2ZoYW5kbGUoY29uc3Qgc3RydWN0IG5mc19m aCAqZmgpDQogCWtmcmVlKGZoKTsNCiB9DQogDQotI2lmZGVmIFJQQ19ERUJVRw0KKyNpZmRlZiBO RlNfREVCVUcNCiBleHRlcm4gdTMyIF9uZnNfZGlzcGxheV9maGFuZGxlX2hhc2goY29uc3Qgc3Ry dWN0IG5mc19maCAqZmgpOw0KIHN0YXRpYyBpbmxpbmUgdTMyIG5mc19kaXNwbGF5X2ZoYW5kbGVf aGFzaChjb25zdCBzdHJ1Y3QgbmZzX2ZoICpmaCkNCiB7DQpAQCAtNjUwLDE0ICs2NTcsNiBAQCBu ZnNfZmlsZWlkX3RvX2lub190KHU2NCBmaWxlaWQpDQogDQogI2lmZGVmIF9fS0VSTkVMX18NCiAN Ci0vKg0KLSAqIEVuYWJsZSBkZWJ1Z2dpbmcgc3VwcG9ydCBmb3IgbmZzIGNsaWVudC4NCi0gKiBS ZXF1aXJlcyBSUENfREVCVUcuDQotICovDQotI2lmZGVmIFJQQ19ERUJVRw0KLSMgZGVmaW5lIE5G U19ERUJVRw0KLSNlbmRpZg0KLQ0KICMgdW5kZWYgaWZkZWJ1Zw0KICMgaWZkZWYgTkZTX0RFQlVH DQogIyAgZGVmaW5lIGlmZGVidWcoZmFjKQkJaWYgKHVubGlrZWx5KG5mc19kZWJ1ZyAmIE5GU0RC R18jI2ZhYykpDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zdW5ycGMvZGVidWcuaCBiL2lu Y2x1ZGUvbGludXgvc3VucnBjL2RlYnVnLmgNCmluZGV4IDZjYjI1MTcuLjk0NDhlYjUgMTAwNjQ0 DQotLS0gYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy9kZWJ1Zy5oDQorKysgYi9pbmNsdWRlL2xpbnV4 L3N1bnJwYy9kZWJ1Zy5oDQpAQCAtMzEsNyArMzEsNyBAQA0KIC8qDQogICogRW5hYmxlIFJQQyBk ZWJ1Z2dpbmcvcHJvZmlsaW5nLg0KICAqLw0KLSNpZmRlZiBDT05GSUdfU1lTQ1RMDQorI2lmZGVm IENPTkZJR19TVU5SUENfREVCVUcNCiAjZGVmaW5lICBSUENfREVCVUcNCiAjZW5kaWYNCiAjaWZk ZWYgQ09ORklHX1RSQUNFUE9JTlRTDQpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9LY29uZmlnIGIv bmV0L3N1bnJwYy9LY29uZmlnDQppbmRleCBmZmQyNDNkLi45ZmU4ODU3IDEwMDY0NA0KLS0tIGEv bmV0L3N1bnJwYy9LY29uZmlnDQorKysgYi9uZXQvc3VucnBjL0tjb25maWcNCkBAIC0zOSwzICsz OSwxNiBAQCBjb25maWcgUlBDU0VDX0dTU19LUkI1DQogCSAgS2VyYmVyb3Mgc3VwcG9ydCBzaG91 bGQgYmUgaW5zdGFsbGVkLg0KIA0KIAkgIElmIHVuc3VyZSwgc2F5IFkuDQorDQorY29uZmlnIFNV TlJQQ19ERUJVRw0KKwlib29sICJSUEM6IEVuYWJsZSBkcHJpbnRrIGRlYnVnZ2luZyINCisJZGVw ZW5kcyBvbiBTVU5SUEMgJiYgU1lTQ1RMDQorCWhlbHANCisJICBUaGlzIG9wdGlvbiBlbmFibGVz IGEgc3lzY3RsLWJhc2VkIGRlYnVnZ2luZyBpbnRlcmZhY2UNCisJICB0aGF0IGlzIGJlIHVzZWQg YnkgdGhlICdycGNkZWJ1ZycgdXRpbGl0eSB0byB0dXJuIG9uIG9yIG9mZg0KKwkgIGxvZ2dpbmcg b2YgZGlmZmVyZW50IGFzcGVjdHMgb2YgdGhlIGtlcm5lbCBSUEMgYWN0aXZpdHkuDQorDQorCSAg RGlzYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgbWFrZSB5b3VyIGtlcm5lbCBzbGlnaHRseSBzbWFs bGVyLA0KKwkgIGJ1dCBtYWtlcyB0cm91Ymxlc2hvb3RpbmcgTkZTIGlzc3VlcyBzaWduaWZpY2Fu dGx5IGhhcmRlci4NCisNCisJICBJZiB1bnN1cmUsIHNheSBZLg0KLS0gDQoxLjcuNy42DQoNCg0K LS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lcg0KDQpOZXRB cHANClRyb25kLk15a2xlYnVzdEBuZXRhcHAuY29tDQp3d3cubmV0YXBwLmNvbQ0KDQo=
I like this solution.
-dros
Quoted 209 lines · Trond
Quoted 21 lines · Dros
Oops! The fix is ok, in that it will work, but I'm not sure we want to pull in that type of dependency for a debug message.
Maybe it'd be more appropriate to do something like this:
From
371ebd38717cd34a58d167909b56a216db288f83Mon Sep 17 00:00:00 2001
From: Weston Andros Adamson <[email protected]>
Date: Mon, 19 Mar 2012 11:31:12 -0400
Subject: [PATCH] if CRC32 isn't defined just return 0 for fh hashSigned-off-by Weston Andros Adamson <[email protected]>---
fs/nfs/inode.c| 4 ++++1 files changed, 4 insertions(+), 0 deletions(-)fs/nfs/inode.c +0
-0@@ -1060,7 +1060,11 @@ u32 _nfs_display_fhandle_hash(const struct nfs_fh *fh) {fs/nfs/inode.c u32 _nfs_display_fhandle_hash(const struct nfs_fh *fh) · line 1070
Quoted 10 lines
fs/nfs/inode.c +4
-0/* wireshark uses 32-bit AUTODIN crc and does a bitwise * not on the result */ +#ifdef CONFIG_CRC32 return ~crc32 (0xFFFFFFFF , &fh->data[0 ], fh->size); +#else +return 0 ; +#endif }/* That was my first thought, but the problem with the above is that it hides the CRC32 dependency deep down in the bowels of the NFS code.
OK. What say we just bite the bullet, and add the
dprintk()interface toKbuild. That will allow distros that don't ship the 'rpcdebug' utility to turn offdprintk()and will allow us to select CRC32 if and only if we really need it.
IOW: Something like the following:8<-------------------------------------------------------------------- From
855fa894a2b24b9872b535b75b04b82121f93b73Mon Sep 17 00:00:00 2001
From: Trond Myklebust <[email protected]>
Date: Sun, 18 Mar 2012 14:07:42 -0400
Subject: [PATCH] SUNRPC/NFS: AddKbuilddependencies for NFS_DEBUG/RPC_DEBUGThis allows us to turn on/off the
dprintk()debugging interfaces for those distributions that don't ship the 'rpcdebug' utility. It also allows us to addKbuilddependencies. Specifically, we already know thatdprintk()in general relies onCONFIG_SYSCTL. Now it turns out that the NFS dprintks depend onCONFIG_CRC32after we added support for the filehandle hash.Reported-by Paul Gortmaker <[email protected]>Signed-off-by Trond Myklebust <[email protected]>---
fs/nfs/Kconfig | 6 ++++++ fs/nfs/inode.c | 2 +- fs/nfs/mount_clnt.c | 2 +- fs/nfs/nfsroot.c | 2 +- include/linux/nfs_fs.h | 17 ++++++++--------- include/linux/sunrpc/debug.h | 2 +- net/sunrpc/Kconfig | 13 +++++++++++++ 7 files changed, 31 insertions(+), 13 deletions(-)fs/nfs/Kconfig +6
-0@@ -144,3 +144,9 @@ config NFS_USE_KERNEL_DNS depends on NFS_V4 && !NFS_USE_LEGACY_DNS select DNS_RESOLVER default y + +config NFS_DEBUG + bool + depends on NFS_FS && SUNRPC_DEBUG + select CRC32 + default yfs/nfs/inode.c +1
-1@@ -1047,7 +1047,7 @@ struct nfs_fh *nfs_alloc_fhandle(void)return fh; } -#ifdef RPC_DEBUG +#ifdef NFS_DEBUG /* * _nfs_display_fhandle_hash - calculate the crc32 hash for the filehandle * in the same way that wireshark does fs/nfs/mount_clnt.c +1
-1@@ -16,7 +16,7 @@#include <linux/nfs_fs.h> #include "internal.h" -#ifdef RPC_DEBUG +#ifdef NFS_DEBUG # define NFSDBG_FACILITY NFSDBG_MOUNT#endif fs/nfs/nfsroot.c +1
-1@@ -104,7 +104,7 @@ static char nfs_export_path[NFS_MAXPATHLEN + 1] __initdata = "";/* server:export path string passed to super.c */ static char nfs_root_device[NFS_MAXPATHLEN +1 ]__initdata ="" ; -#ifdef RPC_DEBUG +#ifdef NFS_DEBUG /* * When the "nfsrootdebug" kernel command line option is specified, * enable debugging messages for NFSROOT. include/linux/nfs_fs.h +8
-9@@ -38,6 +38,13 @@#ifdef __KERNEL__ +/* +* Enable dprintk() debugging support for nfs client. +*/ +#ifdef CONFIG_NFS_DEBUG +# define NFS_DEBUG +#endif +#include <linux/in.h> #include <linux/mm.h> #include <linux/pagemap.h> @@ -391,7 +398,7 @@ static inline void nfs_free_fhandle(const struct nfs_fh *fh)kfree (fh); } -#ifdef RPC_DEBUG +#ifdef NFS_DEBUG extern u32 _nfs_display_fhandle_hash (const struct nfs_fh *fh);static inline u32 nfs_display_fhandle_hash (const struct nfs_fh *fh) {@@ -650,14 +657,6 @@ nfs_fileid_to_ino_t(u64 fileid)#ifdef __KERNEL__ -/* -* Enable debugging support for nfs client. -* Requires RPC_DEBUG. -*/ -#ifdef RPC_DEBUG -# define NFS_DEBUG -#endif -# undef ifdebug# ifdef NFS_DEBUG # define ifdebug (fac) if (unlikely(nfs_debug & NFSDBG_##fac))include/linux/sunrpc/debug.h +1
-1@@ -31,7 +31,7 @@/* * Enable RPC debugging/profiling. */ -#ifdef CONFIG_SYSCTL +#ifdef CONFIG_SUNRPC_DEBUG #define RPC_DEBUG #endif #ifdef CONFIG_TRACEPOINTS net/sunrpc/Kconfig +13
-0@@ -39,3 +39,16 @@ config RPCSEC_GSS_KRB5 Kerberos support should be installed. If unsure, say Y. + +config SUNRPC_DEBUG + bool "RPC: Enable dprintk debugging" + depends on SUNRPC && SYSCTL + help + This option enables a sysctl-based debugging interface + that is be used by the 'rpcdebug' utility to turn on or off + logging of different aspects of the kernel RPC activity. + + Disabling this option will make your kernel slightly smaller, + but makes troubleshooting NFS issues significantly harder. + + If unsure, say Y.Signature · 10 lines
1.7.7.6 -- Trond Myklebust Linux NFS client maintainer NetApp [email protected] www.netapp.com