Return-Path: linux-nfs-owner@vger.kernel.org Received: from mail-lb0-f174.google.com ([209.85.217.174]:51592 "EHLO mail-lb0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754327Ab2JGWAN (ORCPT ); Sun, 7 Oct 2012 18:00:13 -0400 Received: by mail-lb0-f174.google.com with SMTP id n3so2544877lbo.19 for ; Sun, 07 Oct 2012 15:00:11 -0700 (PDT) MIME-Version: 1.0 From: Peng Tao Date: Mon, 8 Oct 2012 05:59:49 +0800 Message-ID: Subject: [PATCH-Resend] NFS41: layoutget optimize and pnfsblock cleanup To: Trond Myklebust Cc: linuxnfs Content-Type: multipart/mixed; boundary=bcaec554e0f29ad05404cb7f3a89 Sender: linux-nfs-owner@vger.kernel.org List-ID: --bcaec554e0f29ad05404cb7f3a89 Content-Type: text/plain; charset=UTF-8 Hi Trond, Following first three patches were sent before and optimize layoutget size. Last patch is cleanup and is also sent before. Sorry that I have to send patches as attachments. I am having problem with my smtp setup. Thanks, Tao Peng Tao (4): NFS: track direct IO left bytes NFS41: send real write size in layoutget NFS41: send real read size in layoutget pnfsblock: cleanup nfs4_blkdev_get fs/nfs/blocklayout/blocklayout.c | 38 ++++++++++++++++++++++++++++++++-- fs/nfs/blocklayout/blocklayout.h | 1 - fs/nfs/blocklayout/blocklayoutdev.c | 25 ++++------------------ fs/nfs/direct.c | 12 +++++++++++ fs/nfs/internal.h | 1 + fs/nfs/objlayout/objio_osd.c | 9 +++++++- fs/nfs/pnfs.c | 16 ++++++++++++-- fs/nfs/pnfs.h | 3 +- 8 files changed, 76 insertions(+), 29 deletions(-) --bcaec554e0f29ad05404cb7f3a89 Content-Type: application/octet-stream; name="0001-NFS-track-direct-IO-left-bytes.patch" Content-Disposition: attachment; filename="0001-NFS-track-direct-IO-left-bytes.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h80p23m50 RnJvbSA4ZjkwYmJkMjI5OThiMjE4YTc2NmU2N2M0ZjZkYjc0ZDA0M2M1YWRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZW5nIFRhbyA8YmVyZ3dvbGZAZ21haWwuY29tPgpEYXRlOiBU dWUsIDI1IFNlcCAyMDEyIDE0OjU1OjU3ICswODAwClN1YmplY3Q6IFtQQVRDSC1SZXNlbmQgMS80 XSBORlM6IHRyYWNrIGRpcmVjdCBJTyBsZWZ0IGJ5dGVzCgpTaWduZWQtb2ZmLWJ5OiBQZW5nIFRh byA8dGFvLnBlbmdAZW1jLmNvbT4KLS0tCiBmcy9uZnMvZGlyZWN0LmMgfCAgICA1ICsrKysrCiAx IGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9mcy9uZnMvZGlyZWN0LmMgYi9mcy9uZnMvZGlyZWN0LmMKaW5kZXggMjUzZDM5Ny4uNGJl ODY3MyAxMDA2NDQKLS0tIGEvZnMvbmZzL2RpcmVjdC5jCisrKyBiL2ZzL25mcy9kaXJlY3QuYwpA QCAtNzgsNiArNzgsNyBAQCBzdHJ1Y3QgbmZzX2RpcmVjdF9yZXEgewogCWF0b21pY190CQlpb19j b3VudDsJLyogaS9vcyB3ZSdyZSB3YWl0aW5nIGZvciAqLwogCXNwaW5sb2NrX3QJCWxvY2s7CQkv KiBwcm90ZWN0IGNvbXBsZXRpb24gc3RhdGUgKi8KIAlzc2l6ZV90CQkJY291bnQsCQkvKiBieXRl cyBhY3R1YWxseSBwcm9jZXNzZWQgKi8KKwkJCQlieXRlc19sZWZ0LAkvKiBieXRlcyBsZWZ0IHRv IGJlIHNlbnQgKi8KIAkJCQllcnJvcjsJCS8qIGFueSByZXBvcnRlZCBlcnJvciAqLwogCXN0cnVj dCBjb21wbGV0aW9uCWNvbXBsZXRpb247CS8qIHdhaXQgZm9yIGkvbyBjb21wbGV0aW9uICovCiAK QEAgLTM5MCw2ICszOTEsNyBAQCBzdGF0aWMgc3NpemVfdCBuZnNfZGlyZWN0X3JlYWRfc2NoZWR1 bGVfc2VnbWVudChzdHJ1Y3QgbmZzX3BhZ2Vpb19kZXNjcmlwdG9yICpkZQogCQkJdXNlcl9hZGRy ICs9IHJlcV9sZW47CiAJCQlwb3MgKz0gcmVxX2xlbjsKIAkJCWNvdW50IC09IHJlcV9sZW47CisJ CQlkcmVxLT5ieXRlc19sZWZ0IC09IHJlcV9sZW47CiAJCX0KIAkJLyogVGhlIG5mc19wYWdlIG5v dyBob2xkIHJlZmVyZW5jZXMgdG8gdGhlc2UgcGFnZXMgKi8KIAkJbmZzX2RpcmVjdF9yZWxlYXNl X3BhZ2VzKHBhZ2V2ZWMsIG5wYWdlcyk7CkBAIC00NTcsNiArNDU5LDcgQEAgc3RhdGljIHNzaXpl X3QgbmZzX2RpcmVjdF9yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwgY29uc3Qgc3RydWN0IGlvdmVj ICppb3YsCiAJCWdvdG8gb3V0OwogCiAJZHJlcS0+aW5vZGUgPSBpbm9kZTsKKwlkcmVxLT5ieXRl c19sZWZ0ID0gaW92X2xlbmd0aChpb3YsIG5yX3NlZ3MpOwogCWRyZXEtPmN0eCA9IGdldF9uZnNf b3Blbl9jb250ZXh0KG5mc19maWxlX29wZW5fY29udGV4dChpb2NiLT5raV9maWxwKSk7CiAJbF9j dHggPSBuZnNfZ2V0X2xvY2tfY29udGV4dChkcmVxLT5jdHgpOwogCWlmIChJU19FUlIobF9jdHgp KSB7CkBAIC03MTAsNiArNzEzLDcgQEAgc3RhdGljIHNzaXplX3QgbmZzX2RpcmVjdF93cml0ZV9z Y2hlZHVsZV9zZWdtZW50KHN0cnVjdCBuZnNfcGFnZWlvX2Rlc2NyaXB0b3IgKmQKIAkJCXVzZXJf YWRkciArPSByZXFfbGVuOwogCQkJcG9zICs9IHJlcV9sZW47CiAJCQljb3VudCAtPSByZXFfbGVu OworCQkJZHJlcS0+Ynl0ZXNfbGVmdCAtPSByZXFfbGVuOwogCQl9CiAJCS8qIFRoZSBuZnNfcGFn ZSBub3cgaG9sZCByZWZlcmVuY2VzIHRvIHRoZXNlIHBhZ2VzICovCiAJCW5mc19kaXJlY3RfcmVs ZWFzZV9wYWdlcyhwYWdldmVjLCBucGFnZXMpOwpAQCAtODYwLDYgKzg2NCw3IEBAIHN0YXRpYyBz c2l6ZV90IG5mc19kaXJlY3Rfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBjb25zdCBzdHJ1Y3Qg aW92ZWMgKmlvdiwKIAkJZ290byBvdXQ7CiAKIAlkcmVxLT5pbm9kZSA9IGlub2RlOworCWRyZXEt PmJ5dGVzX2xlZnQgPSBjb3VudDsKIAlkcmVxLT5jdHggPSBnZXRfbmZzX29wZW5fY29udGV4dChu ZnNfZmlsZV9vcGVuX2NvbnRleHQoaW9jYi0+a2lfZmlscCkpOwogCWxfY3R4ID0gbmZzX2dldF9s b2NrX2NvbnRleHQoZHJlcS0+Y3R4KTsKIAlpZiAoSVNfRVJSKGxfY3R4KSkgewotLSAKMS43Ljcu NgoK --bcaec554e0f29ad05404cb7f3a89 Content-Type: application/octet-stream; name="0002-NFS41-send-real-write-size-in-layoutget.patch" Content-Disposition: attachment; filename="0002-NFS41-send-real-write-size-in-layoutget.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h80p23md1 RnJvbSA3MDBhOGYyM2Q1ODgxMTNlY2VjY2Q3MjYxZjQ2MTIzMmM4MTNlNzM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZW5nIFRhbyA8YmVyZ3dvbGZAZ21haWwuY29tPgpEYXRlOiBU dWUsIDI1IFNlcCAyMDEyIDE0OjU1OjU3ICswODAwClN1YmplY3Q6IFtQQVRDSC1SZXNlbmQgMi80 XSBORlM0MTogc2VuZCByZWFsIHdyaXRlIHNpemUgaW4gbGF5b3V0Z2V0CgpGb3IgYnVmZmVyIHdy aXRlLCBibG9jayBsYXlvdXQgY2xpZW50IHNjYW4gaW5vZGUgbWFwcGluZyB0byBmaW5kCm5leHQg aG9sZSBhbmQgdXNlIG9mZnNldC10by1ob2xlIGFzIGxheW91dGdldCBsZW5ndGguIE9iamVjdAps YXlvdXQgY2xpZW50IHVzZXMgb2Zmc2V0LXRvLWlzaXplIGFzIGxheW91dGdldCBsZW5ndGguCgpG b3IgZGlyZWN0IHdyaXRlLCBib3RoIGJsb2NrIGxheW91dCBhbmQgb2JqZWN0IGxheW91dCB1c2Ug ZHJlcS0+Ynl0ZXNfbGVmdC4KClNpZ25lZC1vZmYtYnk6IFBlbmcgVGFvIDx0YW8ucGVuZ0BlbWMu Y29tPgotLS0KIGZzL25mcy9ibG9ja2xheW91dC9ibG9ja2xheW91dC5jIHwgICAzOCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogZnMvbmZzL2RpcmVjdC5jICAgICAgICAg ICAgICAgICAgfCAgICA3ICsrKysrKysKIGZzL25mcy9pbnRlcm5hbC5oICAgICAgICAgICAgICAg IHwgICAgMSArCiBmcy9uZnMvb2JqbGF5b3V0L29iamlvX29zZC5jICAgICB8ICAgIDkgKysrKysr KystCiBmcy9uZnMvcG5mcy5jICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKysrKy0tCiBmcy9u ZnMvcG5mcy5oICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKystCiA2IGZpbGVzIGNoYW5nZWQs IDU3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvbmZzL2Js b2NrbGF5b3V0L2Jsb2NrbGF5b3V0LmMgYi9mcy9uZnMvYmxvY2tsYXlvdXQvYmxvY2tsYXlvdXQu YwppbmRleCBhMzQwMTRhLi5mMTAyN2IwIDEwMDY0NAotLS0gYS9mcy9uZnMvYmxvY2tsYXlvdXQv YmxvY2tsYXlvdXQuYworKysgYi9mcy9uZnMvYmxvY2tsYXlvdXQvYmxvY2tsYXlvdXQuYwpAQCAt MzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Jpby5oPgkJLyogc3RydWN0IGJpbyAqLwog I2luY2x1ZGUgPGxpbnV4L2J1ZmZlcl9oZWFkLmg+CS8qIHZhcmlvdXMgd3JpdGUgY2FsbHMgKi8K ICNpbmNsdWRlIDxsaW51eC9wcmVmZXRjaC5oPgorI2luY2x1ZGUgPGxpbnV4L3BhZ2V2ZWMuaD4K IAogI2luY2x1ZGUgIi4uL3BuZnMuaCIKICNpbmNsdWRlICIuLi9pbnRlcm5hbC5oIgpAQCAtMTIw NCwxNCArMTIwNSw0NSBAQCBibF9wZ190ZXN0X3JlYWQoc3RydWN0IG5mc19wYWdlaW9fZGVzY3Jp cHRvciAqcGdpbywgc3RydWN0IG5mc19wYWdlICpwcmV2LAogCXJldHVybiBwbmZzX2dlbmVyaWNf cGdfdGVzdChwZ2lvLCBwcmV2LCByZXEpOwogfQogCisvKgorICogUmV0dXJuIHRoZSBudW1iZXIg b2YgY29udGlndW91cyBieXRlcyBmb3IgYSBnaXZlbiBpbm9kZQorICogc3RhcnRpbmcgYXQgcGFn ZSBmcmFtZSBpZHguCisgKi8KK3N0YXRpYyB1NjQgcG5mc19udW1fY29udF9ieXRlcyhzdHJ1Y3Qg aW5vZGUgKmlub2RlLCBwZ29mZl90IGlkeCkKK3sKKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZyA9IGlub2RlLT5pX21hcHBpbmc7CisJcGdvZmZfdCBlbmQ7CisKKwkvKiBPcHRpbWl6ZSBj b21tb24gY2FzZSB0aGF0IHdyaXRlcyBmcm9tIDAgdG8gZW5kIG9mIGZpbGUgKi8KKwllbmQgPSBE SVZfUk9VTkRfVVAoaV9zaXplX3JlYWQoaW5vZGUpLCBQQUdFX0NBQ0hFX1NJWkUpOworCWlmIChl bmQgIT0gTkZTX0koaW5vZGUpLT5ucGFnZXMpIHsKKwkJcmN1X3JlYWRfbG9jaygpOworCQllbmQg PSByYWRpeF90cmVlX25leHRfaG9sZSgmbWFwcGluZy0+cGFnZV90cmVlLCBpZHggKyAxLCBVTE9O R19NQVgpOworCQlyY3VfcmVhZF91bmxvY2soKTsKKwl9CisKKwlpZiAoIWVuZCkKKwkJcmV0dXJu IGlfc2l6ZV9yZWFkKGlub2RlKSAtIChpZHggPDwgUEFHRV9DQUNIRV9TSElGVCk7CisJZWxzZQor CQlyZXR1cm4gKGVuZCAtIGlkeCkgPDwgUEFHRV9DQUNIRV9TSElGVDsKK30KKwogc3RhdGljIHZv aWQKIGJsX3BnX2luaXRfd3JpdGUoc3RydWN0IG5mc19wYWdlaW9fZGVzY3JpcHRvciAqcGdpbywg c3RydWN0IG5mc19wYWdlICpyZXEpCiB7CiAJaWYgKHBnaW8tPnBnX2RyZXEgIT0gTlVMTCAmJgot CSAgICAhaXNfYWxpZ25lZF9yZXEocmVxLCBQQUdFX0NBQ0hFX1NJWkUpKQorCSAgICAhaXNfYWxp Z25lZF9yZXEocmVxLCBQQUdFX0NBQ0hFX1NJWkUpKSB7CiAJCW5mc19wYWdlaW9fcmVzZXRfd3Jp dGVfbWRzKHBnaW8pOwotCWVsc2UKLQkJcG5mc19nZW5lcmljX3BnX2luaXRfd3JpdGUocGdpbywg cmVxKTsKKwl9IGVsc2UgeworCQl1NjQgd2Jfc2l6ZTsKKwkJaWYgKHBnaW8tPnBnX2RyZXEgPT0g TlVMTCkKKwkJCXdiX3NpemUgPSBwbmZzX251bV9jb250X2J5dGVzKHBnaW8tPnBnX2lub2RlLAor CQkJCQkJICAgICAgcmVxLT53Yl9pbmRleCk7CisJCWVsc2UKKwkJCXdiX3NpemUgPSBuZnNfZHJl cV9ieXRlc19sZWZ0KHBnaW8tPnBnX2RyZXEpOworCisJCXBuZnNfZ2VuZXJpY19wZ19pbml0X3dy aXRlKHBnaW8sIHJlcSwgd2Jfc2l6ZSk7CisJfQogfQogCiBzdGF0aWMgYm9vbApkaWZmIC0tZ2l0 IGEvZnMvbmZzL2RpcmVjdC5jIGIvZnMvbmZzL2RpcmVjdC5jCmluZGV4IDRiZTg2NzMuLmNhZTI2 Y2IgMTAwNjQ0Ci0tLSBhL2ZzL25mcy9kaXJlY3QuYworKysgYi9mcy9uZnMvZGlyZWN0LmMKQEAg LTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rcmVmLmg+CiAjaW5jbHVkZSA8bGludXgv c2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3Rhc2tfaW9fYWNjb3VudGluZ19vcHMuaD4KKyNpbmNs dWRlIDxsaW51eC9tb2R1bGUuaD4KIAogI2luY2x1ZGUgPGxpbnV4L25mc19mcy5oPgogI2luY2x1 ZGUgPGxpbnV4L25mc19wYWdlLmg+CkBAIC0xOTEsNiArMTkyLDEyIEBAIHN0YXRpYyB2b2lkIG5m c19kaXJlY3RfcmVxX3JlbGVhc2Uoc3RydWN0IG5mc19kaXJlY3RfcmVxICpkcmVxKQogCWtyZWZf cHV0KCZkcmVxLT5rcmVmLCBuZnNfZGlyZWN0X3JlcV9mcmVlKTsKIH0KIAorc3NpemVfdCBuZnNf ZHJlcV9ieXRlc19sZWZ0KHN0cnVjdCBuZnNfZGlyZWN0X3JlcSAqZHJlcSkKK3sKKwlyZXR1cm4g ZHJlcS0+Ynl0ZXNfbGVmdDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKG5mc19kcmVxX2J5dGVzX2xl ZnQpOworCiAvKgogICogQ29sbGVjdHMgYW5kIHJldHVybnMgdGhlIGZpbmFsIGVycm9yIHZhbHVl L2J5dGUtY291bnQuCiAgKi8KZGlmZiAtLWdpdCBhL2ZzL25mcy9pbnRlcm5hbC5oIGIvZnMvbmZz L2ludGVybmFsLmgKaW5kZXggODlhNzk1ZC4uNTliMTMzYyAxMDA2NDQKLS0tIGEvZnMvbmZzL2lu dGVybmFsLmgKKysrIGIvZnMvbmZzL2ludGVybmFsLmgKQEAgLTQ2NCw2ICs0NjQsNyBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgbmZzX2lub2RlX2Rpb193YWl0KHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7 CiAJaW5vZGVfZGlvX3dhaXQoaW5vZGUpOwogfQorZXh0ZXJuIHNzaXplX3QgbmZzX2RyZXFfYnl0 ZXNfbGVmdChzdHJ1Y3QgbmZzX2RpcmVjdF9yZXEgKmRyZXEpOwogCiAvKiBuZnM0cHJvYy5jICov CiBleHRlcm4gdm9pZCBfX25mczRfcmVhZF9kb25lX2NiKHN0cnVjdCBuZnNfcmVhZF9kYXRhICop OwpkaWZmIC0tZ2l0IGEvZnMvbmZzL29iamxheW91dC9vYmppb19vc2QuYyBiL2ZzL25mcy9vYmps YXlvdXQvb2JqaW9fb3NkLmMKaW5kZXggZWE2ZDExMS4uYmU3MzFlNiAxMDA2NDQKLS0tIGEvZnMv bmZzL29iamxheW91dC9vYmppb19vc2QuYworKysgYi9mcy9uZnMvb2JqbGF5b3V0L29iamlvX29z ZC5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8c2NzaS9vc2Rfb3JlLmg+CiAKICNpbmNs dWRlICJvYmpsYXlvdXQuaCIKKyNpbmNsdWRlICIuLi9pbnRlcm5hbC5oIgogCiAjZGVmaW5lIE5G U0RCR19GQUNJTElUWSAgICAgICAgIE5GU0RCR19QTkZTX0xECiAKQEAgLTYwNiw4ICs2MDcsMTQg QEAgc3RhdGljIGJvb2wgYWxpZ25lZF9vbl9yYWlkX3N0cmlwZSh1NjQgb2Zmc2V0LCBzdHJ1Y3Qg b3JlX2xheW91dCAqbGF5b3V0LAogdm9pZCBvYmppb19pbml0X3dyaXRlKHN0cnVjdCBuZnNfcGFn ZWlvX2Rlc2NyaXB0b3IgKnBnaW8sIHN0cnVjdCBuZnNfcGFnZSAqcmVxKQogewogCXVuc2lnbmVk IGxvbmcgc3RyaXBlX2VuZCA9IDA7CisJdTY0IHdiX3NpemU7CiAKLQlwbmZzX2dlbmVyaWNfcGdf aW5pdF93cml0ZShwZ2lvLCByZXEpOworCWlmIChwZ2lvLT5wZ19kcmVxID09IE5VTEwpCisJCXdi X3NpemUgPSBpX3NpemVfcmVhZChwZ2lvLT5wZ19pbm9kZSkgLSByZXFfb2Zmc2V0KHJlcSk7CisJ ZWxzZQorCQl3Yl9zaXplID0gbmZzX2RyZXFfYnl0ZXNfbGVmdChwZ2lvLT5wZ19kcmVxKTsKKwor CXBuZnNfZ2VuZXJpY19wZ19pbml0X3dyaXRlKHBnaW8sIHJlcSwgd2Jfc2l6ZSk7CiAJaWYgKHVu bGlrZWx5KHBnaW8tPnBnX2xzZWcgPT0gTlVMTCkpCiAJCXJldHVybjsgLyogTm90IHBORlMgKi8K IApkaWZmIC0tZ2l0IGEvZnMvbmZzL3BuZnMuYyBiL2ZzL25mcy9wbmZzLmMKaW5kZXggZGU4Mjcy NS4uOTdkZDQ3YyAxMDA2NDQKLS0tIGEvZnMvbmZzL3BuZnMuYworKysgYi9mcy9uZnMvcG5mcy5j CkBAIC0xMjQyLDcgKzEyNDIsOCBAQCBwbmZzX2dlbmVyaWNfcGdfaW5pdF9yZWFkKHN0cnVjdCBu ZnNfcGFnZWlvX2Rlc2NyaXB0b3IgKnBnaW8sIHN0cnVjdCBuZnNfcGFnZSAqcgogRVhQT1JUX1NZ TUJPTF9HUEwocG5mc19nZW5lcmljX3BnX2luaXRfcmVhZCk7CiAKIHZvaWQKLXBuZnNfZ2VuZXJp Y19wZ19pbml0X3dyaXRlKHN0cnVjdCBuZnNfcGFnZWlvX2Rlc2NyaXB0b3IgKnBnaW8sIHN0cnVj dCBuZnNfcGFnZSAqcmVxKQorcG5mc19nZW5lcmljX3BnX2luaXRfd3JpdGUoc3RydWN0IG5mc19w YWdlaW9fZGVzY3JpcHRvciAqcGdpbywKKwkJCSAgIHN0cnVjdCBuZnNfcGFnZSAqcmVxLCB1NjQg d2Jfc2l6ZSkKIHsKIAlCVUdfT04ocGdpby0+cGdfbHNlZyAhPSBOVUxMKTsKIApAQCAtMTI1MCwx MCArMTI1MSwxMSBAQCBwbmZzX2dlbmVyaWNfcGdfaW5pdF93cml0ZShzdHJ1Y3QgbmZzX3BhZ2Vp b19kZXNjcmlwdG9yICpwZ2lvLCBzdHJ1Y3QgbmZzX3BhZ2UgKgogCQluZnNfcGFnZWlvX3Jlc2V0 X3dyaXRlX21kcyhwZ2lvKTsKIAkJcmV0dXJuOwogCX0KKwogCXBnaW8tPnBnX2xzZWcgPSBwbmZz X3VwZGF0ZV9sYXlvdXQocGdpby0+cGdfaW5vZGUsCiAJCQkJCSAgIHJlcS0+d2JfY29udGV4dCwK IAkJCQkJICAgcmVxX29mZnNldChyZXEpLAotCQkJCQkgICByZXEtPndiX2J5dGVzLAorCQkJCQkg ICB3Yl9zaXplLAogCQkJCQkgICBJT01PREVfUlcsCiAJCQkJCSAgIEdGUF9OT0ZTKTsKIAkvKiBJ ZiBubyBsc2VnLCBmYWxsIGJhY2sgdG8gd3JpdGUgdGhyb3VnaCBtZHMgKi8KZGlmZiAtLWdpdCBh L2ZzL25mcy9wbmZzLmggYi9mcy9uZnMvcG5mcy5oCmluZGV4IDZjZWRlMmMuLjJkNzIyZGIgMTAw NjQ0Ci0tLSBhL2ZzL25mcy9wbmZzLmgKKysrIGIvZnMvbmZzL3BuZnMuaApAQCAtMTg2LDcgKzE4 Niw4IEBAIHZvaWQgc2V0X3BuZnNfbGF5b3V0ZHJpdmVyKHN0cnVjdCBuZnNfc2VydmVyICosIGNv bnN0IHN0cnVjdCBuZnNfZmggKiwgdTMyKTsKIHZvaWQgdW5zZXRfcG5mc19sYXlvdXRkcml2ZXIo c3RydWN0IG5mc19zZXJ2ZXIgKik7CiB2b2lkIHBuZnNfZ2VuZXJpY19wZ19pbml0X3JlYWQoc3Ry dWN0IG5mc19wYWdlaW9fZGVzY3JpcHRvciAqLCBzdHJ1Y3QgbmZzX3BhZ2UgKik7CiBpbnQgcG5m c19nZW5lcmljX3BnX3JlYWRwYWdlcyhzdHJ1Y3QgbmZzX3BhZ2Vpb19kZXNjcmlwdG9yICpkZXNj KTsKLXZvaWQgcG5mc19nZW5lcmljX3BnX2luaXRfd3JpdGUoc3RydWN0IG5mc19wYWdlaW9fZGVz Y3JpcHRvciAqLCBzdHJ1Y3QgbmZzX3BhZ2UgKik7Cit2b2lkIHBuZnNfZ2VuZXJpY19wZ19pbml0 X3dyaXRlKHN0cnVjdCBuZnNfcGFnZWlvX2Rlc2NyaXB0b3IgKnBnaW8sCisJCQkgICAgICAgIHN0 cnVjdCBuZnNfcGFnZSAqcmVxLCB1NjQgd2Jfc2l6ZSk7CiBpbnQgcG5mc19nZW5lcmljX3BnX3dy aXRlcGFnZXMoc3RydWN0IG5mc19wYWdlaW9fZGVzY3JpcHRvciAqZGVzYyk7CiBib29sIHBuZnNf Z2VuZXJpY19wZ190ZXN0KHN0cnVjdCBuZnNfcGFnZWlvX2Rlc2NyaXB0b3IgKnBnaW8sIHN0cnVj dCBuZnNfcGFnZSAqcHJldiwgc3RydWN0IG5mc19wYWdlICpyZXEpOwogdm9pZCBwbmZzX3NldF9s b19mYWlsKHN0cnVjdCBwbmZzX2xheW91dF9zZWdtZW50ICpsc2VnKTsKLS0gCjEuNy43LjYKCg== --bcaec554e0f29ad05404cb7f3a89 Content-Type: application/octet-stream; name="0003-NFS41-send-real-read-size-in-layoutget.patch" Content-Disposition: attachment; filename="0003-NFS41-send-real-read-size-in-layoutget.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h80p23mi2 RnJvbSAwZTJjZWVhNGNmMTgzMDI5NzcyNmExNzVlMWZhYmFmZTJhMzFhZGYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZW5nIFRhbyA8YmVyZ3dvbGZAZ21haWwuY29tPgpEYXRlOiBU dWUsIDI1IFNlcCAyMDEyIDE0OjU1OjU3ICswODAwClN1YmplY3Q6IFtQQVRDSC1SZXNlbmQgMy80 XSBORlM0MTogc2VuZCByZWFsIHJlYWQgc2l6ZSBpbiBsYXlvdXRnZXQKCkZvciBidWZmZXIgcmVh ZCwgdXNlIG9mZnN0LXRvLWlzaXplLgoKRm9yIGRpcmVjdCByZWFkLCB1c2UgZHJlcS0+Ynl0ZXNf bGVmdC4KClNpZ25lZC1vZmYtYnk6IFBlbmcgVGFvIDx0YW8ucGVuZ0BlbWMuY29tPgotLS0KIGZz L25mcy9wbmZzLmMgfCAgIDEwICsrKysrKysrKy0KIDEgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL25mcy9wbmZzLmMgYi9mcy9u ZnMvcG5mcy5jCmluZGV4IDk3ZGQ0N2MuLjBjMDFiY2EgMTAwNjQ0Ci0tLSBhL2ZzL25mcy9wbmZz LmMKKysrIGIvZnMvbmZzL3BuZnMuYwpAQCAtMTIyMiwxNiArMTIyMiwyNCBAQCBvdXRfZm9yZ2V0 X3JlcGx5Ogogdm9pZAogcG5mc19nZW5lcmljX3BnX2luaXRfcmVhZChzdHJ1Y3QgbmZzX3BhZ2Vp b19kZXNjcmlwdG9yICpwZ2lvLCBzdHJ1Y3QgbmZzX3BhZ2UgKnJlcSkKIHsKKwl1NjQgcmRfc2l6 ZSA9IHJlcS0+d2JfYnl0ZXM7CisKIAlCVUdfT04ocGdpby0+cGdfbHNlZyAhPSBOVUxMKTsKIAog CWlmIChyZXEtPndiX29mZnNldCAhPSByZXEtPndiX3BnYmFzZSkgewogCQluZnNfcGFnZWlvX3Jl c2V0X3JlYWRfbWRzKHBnaW8pOwogCQlyZXR1cm47CiAJfQorCisJaWYgKHBnaW8tPnBnX2RyZXEg PT0gTlVMTCkKKwkJcmRfc2l6ZSA9IGlfc2l6ZV9yZWFkKHBnaW8tPnBnX2lub2RlKSAtIHJlcV9v ZmZzZXQocmVxKTsKKwllbHNlCisJCXJkX3NpemUgPSBuZnNfZHJlcV9ieXRlc19sZWZ0KHBnaW8t PnBnX2RyZXEpOworCiAJcGdpby0+cGdfbHNlZyA9IHBuZnNfdXBkYXRlX2xheW91dChwZ2lvLT5w Z19pbm9kZSwKIAkJCQkJICAgcmVxLT53Yl9jb250ZXh0LAogCQkJCQkgICByZXFfb2Zmc2V0KHJl cSksCi0JCQkJCSAgIHJlcS0+d2JfYnl0ZXMsCisJCQkJCSAgIHJkX3NpemUsCiAJCQkJCSAgIElP TU9ERV9SRUFELAogCQkJCQkgICBHRlBfS0VSTkVMKTsKIAkvKiBJZiBubyBsc2VnLCBmYWxsIGJh Y2sgdG8gcmVhZCB0aHJvdWdoIG1kcyAqLwotLSAKMS43LjcuNgoK --bcaec554e0f29ad05404cb7f3a89 Content-Type: application/octet-stream; name="0004-pnfsblock-cleanup-nfs4_blkdev_get.patch" Content-Disposition: attachment; filename="0004-pnfsblock-cleanup-nfs4_blkdev_get.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h80p23ml3 RnJvbSBkMzA5N2YxZTJhMmZlM2I1NWVjODc1NTliNzBhYmRjZmM1NDY2MzQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQZW5nIFRhbyA8YmVyZ3dvbGZAZ21haWwuY29tPgpEYXRlOiBU dWUsIDI1IFNlcCAyMDEyIDE0OjU1OjU3ICswODAwClN1YmplY3Q6IFtQQVRDSC1SZXNlbmQgNC80 XSBwbmZzYmxvY2s6IGNsZWFudXAgbmZzNF9ibGtkZXZfZ2V0CgpJdCBpcyBub3QgbmVlZGVkIGF0 IGFsbCBhbmQgaXQgaXMgbWVzc2luZyB3aXRoIHJldHVybiB2YWx1ZXMuLi4KClJlcG9ydGVkLWJ5 OiBXZWkgWW9uZ2p1biA8eW9uZ2p1bl93ZWlAdHJlbmRtaWNyby5jb20uY24+ClNpZ25lZC1vZmYt Ynk6IFBlbmcgVGFvIDx0YW8ucGVuZ0BlbWMuY29tPgotLS0KIGZzL25mcy9ibG9ja2xheW91dC9i bG9ja2xheW91dC5oICAgIHwgICAgMSAtCiBmcy9uZnMvYmxvY2tsYXlvdXQvYmxvY2tsYXlvdXRk ZXYuYyB8ICAgMjUgKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA1 IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL25mcy9ibG9j a2xheW91dC9ibG9ja2xheW91dC5oIGIvZnMvbmZzL2Jsb2NrbGF5b3V0L2Jsb2NrbGF5b3V0LmgK aW5kZXggMzliYjUxYS4uZjQ4OTFiZCAxMDA2NDQKLS0tIGEvZnMvbmZzL2Jsb2NrbGF5b3V0L2Js b2NrbGF5b3V0LmgKKysrIGIvZnMvbmZzL2Jsb2NrbGF5b3V0L2Jsb2NrbGF5b3V0LmgKQEAgLTE3 Myw3ICsxNzMsNiBAQCBzdHJ1Y3QgYmxfbXNnX2hkciB7CiAvKiBibG9ja2xheW91dGRldi5jICov CiBzc2l6ZV90IGJsX3BpcGVfZG93bmNhbGwoc3RydWN0IGZpbGUgKiwgY29uc3QgY2hhciBfX3Vz ZXIgKiwgc2l6ZV90KTsKIHZvaWQgYmxfcGlwZV9kZXN0cm95X21zZyhzdHJ1Y3QgcnBjX3BpcGVf bXNnICopOwotc3RydWN0IGJsb2NrX2RldmljZSAqbmZzNF9ibGtkZXZfZ2V0KGRldl90IGRldik7 CiBpbnQgbmZzNF9ibGtkZXZfcHV0KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpOwogc3RydWN0 IHBuZnNfYmxvY2tfZGV2ICpuZnM0X2Jsa19kZWNvZGVfZGV2aWNlKHN0cnVjdCBuZnNfc2VydmVy ICpzZXJ2ZXIsCiAJCQkJCQlzdHJ1Y3QgcG5mc19kZXZpY2UgKmRldik7CmRpZmYgLS1naXQgYS9m cy9uZnMvYmxvY2tsYXlvdXQvYmxvY2tsYXlvdXRkZXYuYyBiL2ZzL25mcy9ibG9ja2xheW91dC9i bG9ja2xheW91dGRldi5jCmluZGV4IGM5NjU1NDIuLmE4NmM1YmQgMTAwNjQ0Ci0tLSBhL2ZzL25m cy9ibG9ja2xheW91dC9ibG9ja2xheW91dGRldi5jCisrKyBiL2ZzL25mcy9ibG9ja2xheW91dC9i bG9ja2xheW91dGRldi5jCkBAIC01MywyMiArNTMsNiBAQCBzdGF0aWMgaW50IGRlY29kZV9zZWN0 b3JfbnVtYmVyKF9fYmUzMiAqKnJwLCBzZWN0b3JfdCAqc3ApCiAJcmV0dXJuIDA7CiB9CiAKLS8q IE9wZW4gYSBibG9ja19kZXZpY2UgYnkgZGV2aWNlIG51bWJlci4gKi8KLXN0cnVjdCBibG9ja19k ZXZpY2UgKm5mczRfYmxrZGV2X2dldChkZXZfdCBkZXYpCi17Ci0Jc3RydWN0IGJsb2NrX2Rldmlj ZSAqYmQ7Ci0KLQlkcHJpbnRrKCIlcyBlbnRlclxuIiwgX19mdW5jX18pOwotCWJkID0gYmxrZGV2 X2dldF9ieV9kZXYoZGV2LCBGTU9ERV9SRUFELCBOVUxMKTsKLQlpZiAoSVNfRVJSKGJkKSkKLQkJ Z290byBmYWlsOwotCXJldHVybiBiZDsKLWZhaWw6Ci0JZHByaW50aygiJXMgZmFpbGVkIHRvIG9w ZW4gZGV2aWNlIDogJWxkXG4iLAotCQkJX19mdW5jX18sIFBUUl9FUlIoYmQpKTsKLQlyZXR1cm4g TlVMTDsKLX0KLQogLyoKICAqIFJlbGVhc2UgdGhlIGJsb2NrIGRldmljZQogICovCkBAIC0xNzIs MTEgKzE1NiwxMiBAQCBuZnM0X2Jsa19kZWNvZGVfZGV2aWNlKHN0cnVjdCBuZnNfc2VydmVyICpz ZXJ2ZXIsCiAJCWdvdG8gb3V0OwogCX0KIAotCWJkID0gbmZzNF9ibGtkZXZfZ2V0KE1LREVWKHJl cGx5LT5tYWpvciwgcmVwbHktPm1pbm9yKSk7CisJYmQgPSBibGtkZXZfZ2V0X2J5X2RldihNS0RF VihyZXBseS0+bWFqb3IsIHJlcGx5LT5taW5vciksCisJCQkgICAgICAgRk1PREVfUkVBRCwgTlVM TCk7CiAJaWYgKElTX0VSUihiZCkpIHsKLQkJcmMgPSBQVFJfRVJSKGJkKTsKLQkJZHByaW50aygi JXMgZmFpbGVkIHRvIG9wZW4gZGV2aWNlIDogJWRcbiIsIF9fZnVuY19fLCByYyk7Ci0JCXJ2ID0g RVJSX1BUUihyYyk7CisJCWRwcmludGsoIiVzIGZhaWxlZCB0byBvcGVuIGRldmljZSA6ICVsZFxu IiwgX19mdW5jX18sCisJCQlQVFJfRVJSKGJkKSk7CisJCXJ2ID0gRVJSX0NBU1QoYmQpOwogCQln b3RvIG91dDsKIAl9CiAKLS0gCjEuNy43LjYKCg== --bcaec554e0f29ad05404cb7f3a89--