From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4686D81858 for ; Sat, 31 Dec 2016 18:57:57 -0800 (PST) From: "Williams, Dan J" Subject: [GIT PULL] dax final updates and fixes for 4.10-rc2 Date: Sun, 1 Jan 2017 02:57:56 +0000 Message-ID: <1483239473.2943.17.camel@intel.com> Content-Language: en-US Content-ID: MIME-Version: 1.0 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-7" Content-Transfer-Encoding: base64 Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" To: "torvalds@linux-foundation.org" Cc: "linux-fsdevel@vger.kernel.org" , "linux-mm@kvack.org" , "jack@suse.cz" , "linux-nvdimm@lists.01.org" List-ID: SGkgTGludXMsIHBsZWFzZSBwdWxsIGZyb206CgogIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9z Y20vbGludXgva2VybmVsL2dpdC9udmRpbW0vbnZkaW1tIGxpYm52ZGltbS1maXhlcwoKLi4udG8g cmVjZWl2ZSB0aGUgY29tcGxldGlvbiBvZiBKYW4ncyBEQVggd29yayBmb3IgNC4xMC4KCkFzIEkg bWVudGlvbmVkIGluIHRoZSBsaWJudmRpbW0tZm9yLTQuMTAgcHVsbCByZXF1ZXN0IFsxXSwgdGhl c2UgYXJlCnNvbWUgZmluYWwgZml4ZXMgZm9yIHRoZSBEQVggZGlydHktY2FjaGVsaW5lLXRyYWNr aW5nIGludmFsaWRhdGlvbiB3b3JrCnRoYXQgd2FzIG1lcmdlZCB0aHJvdWdoIHRoZSAtbW0sIGV4 dDQsIGFuZCB4ZnMgdHJlZXMgaW4gLXJjMS4gVGhlc2UKcGF0Y2hlcyB3ZXJlIHByZXBhcmVkIHBy aW9yIHRvIHRoZSBtZXJnZSB3aW5kb3csIGJ1dCB3ZSB3YWl0ZWQgZm9yCjQuMTAtcmMxIHRvIGhh dmUgYSBzdGFibGUgbWVyZ2UgYmFzZSBhZnRlciBhbGwgdGhlIHByZXJlcXVpc2l0ZXMgd2VyZQpt ZXJnZWQuCgpRdW90aW5nIEphbiBvbiB0aGUgb3ZlcmFsbCBjaGFuZ2VzIGluIHRoZXNlIHBhdGNo ZXM6CgogICAgU28gSSdkIGxpa2UgYWxsIHRoZXNlIDYgcGF0Y2hlcyB0byBnbyBmb3IgcmMyLiBU aGUgZmlyc3QgdGhyZWUKICAgIHBhdGNoZXMgZml4IGludmFsaWRhdGlvbiBvZiBleGNlcHRpb25h bCBEQVggZW50cmllcyAoYSBidWcgd2hpY2ggaXMKICAgIHRoZXJlIGZvciBhIGxvbmcgdGltZSkg LSB3aXRob3V0IHRoZXNlIHBhdGNoZXMgZGF0YSBsb3NzIGNhbiBvY2N1cgogICAgb24gcG93ZXIg ZmFpbHVyZSBldmVuIHRob3VnaCB1c2VyIGNhbGxlZCBmc3luYygyKS4gVGhlIG90aGVyIHRocmVl CiAgICBwYXRjaGVzIGNoYW5nZSBsb2NraW5nIG9mIERBWCBmYXVsdHMgc28gdGhhdCAtPmlvbWFw X2JlZ2luKCkgaXMKICAgIGNhbGxlZCBpbiBhIG1vcmUgcmVsYXhlZCBsb2NraW5nIGNvbnRleHQg YW5kIHdlIGFyZSBzYWZlIHRvIHN0YXJ0IGEKICAgIHRyYW5zYWN0aW9uIHRoZXJlIGZvciBleHQ0 LgoKVGhlc2UgaGF2ZSByZWNlaXZlZCBhIGJ1aWxkIHN1Y2Nlc3Mgbm90aWZpY2F0aW9uIGZyb20g dGhlIGtidWlsZCByb2JvdCwKYW5kIHBhc3MgdGhlIGxhdGVzdCBsaWJudmRpbW0gdW5pdCB0ZXN0 cy4gVGhlcmUgaGF2ZSBub3QgYmVlbiBhbnkgLW5leHQKcmVsZWFzZXMgc2luY2UgLXJjMSwgc28g dGhleSBoYXZlIG5vdCBhcHBlYXJlZCB0aGVyZS4KClsxXTorQUtBLWh0dHBzOi8vbGlzdHMuMDEu b3JnL3BpcGVybWFpbC9saW51eC1udmRpbW0vMjAxNi1EZWNlbWJlci8wMDgyNzkuaAp0bWwKCi0t LQoKVGhlIGZvbGxvd2luZyBjaGFuZ2VzIHNpbmNlIGNvbW1pdCA3Y2U3ZDg5ZjQ4ODM0Y2VmZWNl NzgwNGQzOGZjNWQ4NTM4MmVkZjc3OgoKICBMaW51eCA0LjEwLXJjMSAoMjAxNi0xMi0yNSAxNjox MzowOCAtMDgwMCkKCmFyZSBhdmFpbGFibGUgaW4gdGhlIGdpdCByZXBvc2l0b3J5IGF0OgoKICBn aXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvbnZkaW1tL252ZGlt bSBsaWJudmRpbW0tZml4ZXMKCmZvciB5b3UgdG8gZmV0Y2ggY2hhbmdlcyB1cCB0byAxZGIxNzU0 MjhlZTM3NDQ4OTQ0ODM2MTIxM2U5YzNiNzQ5ZDE0OTAwOgoKICBleHQ0OiBTaW1wbGlmeSBEQVgg ZmF1bHQgcGF0aCAoMjAxNi0xMi0yNiAyMDoyOToyNSAtMDgwMCkKCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSmFuIEthcmEg KDYpOgogICAgICBleHQyOiBSZXR1cm4gQkhfTmV3IGJ1ZmZlcnMgZm9yIHplcm9lZCBibG9ja3MK ICAgICAgbW06IEludmFsaWRhdGUgREFYIHJhZGl4IHRyZWUgZW50cmllcyBvbmx5IGlmIGFwcHJv cHJpYXRlCiAgICAgIGRheDogQXZvaWQgcGFnZSBpbnZhbGlkYXRpb24gcmFjZXMgYW5kIHVubmVj ZXNzYXJ5IHJhZGl4IHRyZWUgdHJhdmVyc2FscwogICAgICBkYXg6IEZpbmlzaCBmYXVsdCBjb21w bGV0ZWx5IHdoZW4gbG9hZGluZyBob2xlcwogICAgICBkYXg6IENhbGwgLT5pb21hcF9iZWdpbiB3 aXRob3V0IGVudHJ5IGxvY2sgZHVyaW5nIGRheCBmYXVsdAogICAgICBleHQ0OiBTaW1wbGlmeSBE QVggZmF1bHQgcGF0aAoKIGZzL2RheC5jICAgICAgICAgICAgfCAyNDMgKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstLS0tLS0t LS0tLS0tLS0tLS0tLQogZnMvZXh0Mi9pbm9kZS5jICAgICB8ICAgMyArLS0KIGZzL2V4dDQvZmls ZS5jICAgICAgfCAgNDggKy0rLSstLS0tLS0tLS0KIGluY2x1ZGUvbGludXgvZGF4LmggfCAgIDMg Ky0KIG1tL3RydW5jYXRlLmMgICAgICAgfCAgNzUgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0t LS0KIDUgZmlsZXMgY2hhbmdlZCwgMjI5IGluc2VydGlvbnMoKy0pLCAxNDMgZGVsZXRpb25zKC0p Cgpjb21taXQgZTU2OGRmNmI4NGZmMDVhMjI0Njc1MDNhZmMxMWJlZTdhNmJhMDcwMApBdXRob3I6 IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+CkRhdGU6ICAgV2VkIEF1ZyAxMCAxNjo0Mjo1MyAyMDE2 ICstMDIwMAoKICAgIGV4dDI6IFJldHVybiBCSF9OZXcgYnVmZmVycyBmb3IgemVyb2VkIGJsb2Nr cwogICAgCiAgICBTbyBmYXIgd2UgZGlkIG5vdCByZXR1cm4gQkhfTmV3IGJ1ZmZlcnMgZnJvbSBl eHQyX2dldF9ibG9ja3MoKSB3aGVuIHdlCiAgICBhbGxvY2F0ZWQgYW5kIHplcm9lZC1vdXQgYSBi bG9jayBmb3IgREFYIGlub2RlIHRvIGF2b2lkIHJhY3kgemVyb2luZyBpbgogICAgREFYIGNvZGUu IFRoaXMgemVyb2luZyBpcyBnb25lIHRoZXNlIGRheXMgc28gd2UgY2FuIHJlbW92ZSB0aGUKICAg IHdvcmthcm91bmQuCiAgICAKICAgIFJldmlld2VkLWJ5OiBSb3NzIFp3aXNsZXIgPHJvc3Muendp c2xlckBsaW51eC5pbnRlbC5jb20+CiAgICBSZXZpZXdlZC1ieTogQ2hyaXN0b3BoIEhlbGx3aWcg PGhjaEBsc3QuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYW4gS2FyYSA8amFja0BzdXNlLmN6Pgog ICAgU2lnbmVkLW9mZi1ieTogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+ Cgpjb21taXQgYzZkY2Y1MmMyM2QyZDNmYjUyMzVjZWM0MmQ3ZGQzZjc4NmI4N2Q1NQpBdXRob3I6 IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+CkRhdGU6ICAgV2VkIEF1ZyAxMCAxNzoyMjo0NCAyMDE2 ICstMDIwMAoKICAgIG1tOiBJbnZhbGlkYXRlIERBWCByYWRpeCB0cmVlIGVudHJpZXMgb25seSBp ZiBhcHByb3ByaWF0ZQogICAgCiAgICBDdXJyZW50bHkgaW52YWxpZGF0ZV9pbm9kZV9wYWdlczJf cmFuZ2UoKSBhbmQgaW52YWxpZGF0ZV9tYXBwaW5nX3BhZ2VzKCkKICAgIGp1c3QgZGVsZXRlIGFs bCBleGNlcHRpb25hbCByYWRpeCB0cmVlIGVudHJpZXMgdGhleSBmaW5kLiBGb3IgREFYIHRoaXMK ICAgIGlzIG5vdCBkZXNpcmFibGUgYXMgd2UgdHJhY2sgY2FjaGUgZGlydGluZXNzIGluIHRoZXNl IGVudHJpZXMgYW5kIHdoZW4KICAgIHRoZXkgYXJlIGV2aWN0ZWQsIHdlIG1heSBub3QgZmx1c2gg Y2FjaGVzIGFsdGhvdWdoIGl0IGlzIG5lY2Vzc2FyeS4gVGhpcwogICAgY2FuIGZvciBleGFtcGxl IG1hbmlmZXN0IHdoZW4gd2Ugd3JpdGUgdG8gdGhlIHNhbWUgYmxvY2sgYm90aCB2aWEgbW1hcAog ICAgYW5kIHZpYSB3cml0ZSgyKSAodG8gZGlmZmVyZW50IG9mZnNldHMpIGFuZCBmc3luYygyKSB0 aGVuIGRvZXMgbm90CiAgICBwcm9wZXJseSBmbHVzaCBDUFUgY2FjaGVzIHdoZW4gbW9kaWZpY2F0 aW9uIHZpYSB3cml0ZSgyKSB3YXMgdGhlIGxhc3QKICAgIG9uZS4KICAgIAogICAgQ3JlYXRlIGFw cHJvcHJpYXRlIERBWCBmdW5jdGlvbnMgdG8gaGFuZGxlIGludmFsaWRhdGlvbiBvZiBEQVggZW50 cmllcwogICAgZm9yIGludmFsaWRhdGVfaW5vZGVfcGFnZXMyX3JhbmdlKCkgYW5kIGludmFsaWRh dGVfbWFwcGluZ19wYWdlcygpIGFuZAogICAgd2lyZSB0aGVtIHVwIGludG8gdGhlIGNvcnJlc3Bv bmRpbmcgbW0gZnVuY3Rpb25zLgogICAgCiAgICBBY2tlZC1ieTogSm9oYW5uZXMgV2VpbmVyIDxo YW5uZXNAY21weGNoZy5vcmc+CiAgICBSZXZpZXdlZC1ieTogUm9zcyBad2lzbGVyIDxyb3NzLnp3 aXNsZXJAbGludXguaW50ZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFuIEthcmEgPGphY2tA c3VzZS5jej4KICAgIFNpZ25lZC1vZmYtYnk6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNA aW50ZWwuY29tPgoKY29tbWl0IGUzZmNlNjhjZGJlZDI5N2Q5MjdlOTkzYjNlYTdiOGIxY2VlNTQ1 ZGEKQXV0aG9yOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgpEYXRlOiAgIFdlZCBBdWcgMTAgMTc6 MTA6MjggMjAxNiArLTAyMDAKCiAgICBkYXg6IEF2b2lkIHBhZ2UgaW52YWxpZGF0aW9uIHJhY2Vz IGFuZCB1bm5lY2Vzc2FyeSByYWRpeCB0cmVlIHRyYXZlcnNhbHMKICAgIAogICAgQ3VycmVudGx5 IGRheF9pb21hcF9ydygpIHRha2VzIGNhcmUgb2YgaW52YWxpZGF0aW5nIHBhZ2UgdGFibGVzIGFu ZAogICAgZXZpY3RpbmcgaG9sZSBwYWdlcyBmcm9tIHRoZSByYWRpeCB0cmVlIHdoZW4gd3JpdGUo MikgdG8gdGhlIGZpbGUKICAgIGhhcHBlbnMuIFRoaXMgaW52YWxpZGF0aW9uIGlzIG9ubHkgbmVj ZXNzYXJ5IHdoZW4gdGhlcmUgaXMgc29tZSBibG9jawogICAgYWxsb2NhdGlvbiByZXN1bHRpbmcg ZnJvbSB3cml0ZSgyKS4gRnVydGhlcm1vcmUgaW4gY3VycmVudCBwbGFjZSB0aGUKICAgIGludmFs aWRhdGlvbiBpcyByYWN5IHdydCBwYWdlIGZhdWx0IGluc3RhbnRpYXRpbmcgYSBob2xlIHBhZ2Ug anVzdCBhZnRlcgogICAgd2UgaGF2ZSBpbnZhbGlkYXRlZCBpdC4KICAgIAogICAgU28gcGVyZm9y bSB0aGUgcGFnZSBpbnZhbGlkYXRpb24gaW5zaWRlIGRheF9pb21hcF9hY3RvcigpIHdoZXJlIHdl IGNhbgogICAgZG8gaXQgb25seSB3aGVuIHJlYWxseSBuZWNlc3NhcnkgYW5kIGFmdGVyIGJsb2Nr cyBoYXZlIGJlZW4gYWxsb2NhdGVkIHNvCiAgICBub2JvZHkgd2lsbCBiZSBpbnN0YW50aWF0aW5n IG5ldyBob2xlIHBhZ2VzIGFueW1vcmUuCiAgICAKICAgIFJldmlld2VkLWJ5OiBDaHJpc3RvcGgg SGVsbHdpZyA8aGNoQGxzdC5kZT4KICAgIFJldmlld2VkLWJ5OiBSb3NzIFp3aXNsZXIgPHJvc3Mu endpc2xlckBsaW51eC5pbnRlbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYW4gS2FyYSA8amFj a0BzdXNlLmN6PgogICAgU2lnbmVkLW9mZi1ieTogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFt c0BpbnRlbC5jb20+Cgpjb21taXQgZjQ0OWI5MzZmMWFmZjc2OTZiMjRhMzM4ZjQ5M2Q1Y2VlOGQ0 OGQ1NQpBdXRob3I6IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+CkRhdGU6ICAgV2VkIE9jdCAxOSAx NDo0ODozOCAyMDE2ICstMDIwMAoKICAgIGRheDogRmluaXNoIGZhdWx0IGNvbXBsZXRlbHkgd2hl biBsb2FkaW5nIGhvbGVzCiAgICAKICAgIFRoZSBvbmx5IGNhc2Ugd2hlbiB3ZSBkbyBub3QgZmlu aXNoIHRoZSBwYWdlIGZhdWx0IGNvbXBsZXRlbHkgaXMgd2hlbiB3ZQogICAgYXJlIGxvYWRpbmcg aG9sZSBwYWdlcyBpbnRvIGEgcmFkaXggdHJlZS4gQXZvaWQgdGhpcyBzcGVjaWFsIGNhc2UgYW5k CiAgICBmaW5pc2ggdGhlIGZhdWx0IGluIHRoYXQgY2FzZSBhcyB3ZWxsIGluc2lkZSB0aGUgREFY IGZhdWx0IGhhbmRsZXIuIEl0CiAgICB3aWxsIGFsbG93IHVzIGZvciBlYXNpZXIgaW9tYXAgaGFu ZGxpbmcuCiAgICAKICAgIFJldmlld2VkLWJ5OiBSb3NzIFp3aXNsZXIgPHJvc3Muendpc2xlckBs aW51eC5pbnRlbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYW4gS2FyYSA8amFja0BzdXNlLmN6 PgogICAgU2lnbmVkLW9mZi1ieTogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5j b20+Cgpjb21taXQgOWYxNDFkNmVmNjI1OGEzYTM3YTA0NTg0MmQ5YmE3ZTY4ZjM2ODk1NgpBdXRo b3I6IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+CkRhdGU6ICAgV2VkIE9jdCAxOSAxNDozNDozMSAy MDE2ICstMDIwMAoKICAgIGRheDogQ2FsbCAtPmlvbWFwX2JlZ2luIHdpdGhvdXQgZW50cnkgbG9j ayBkdXJpbmcgZGF4IGZhdWx0CiAgICAKICAgIEN1cnJlbnRseSAtPmlvbWFwX2JlZ2luKCkgaGFu ZGxlciBpcyBjYWxsZWQgd2l0aCBlbnRyeSBsb2NrIGhlbGQuIElmIHRoZQogICAgZmlsZXN5c3Rl bSBoZWxkIGFueSBsb2NrcyBiZXR3ZWVuIC0+aW9tYXBfYmVnaW4oKSBhbmQgLT5pb21hcF9lbmQo KQogICAgKHN1Y2ggYXMgZXh0NCB3aGljaCB3aWxsIHdhbnQgdG8gaG9sZCB0cmFuc2FjdGlvbiBv cGVuKSwgdGhpcyB3b3VsZCBjYXVzZQogICAgbG9jayBpbnZlcnNpb24gd2l0aCB0aGUgaW9tYXBf YXBwbHkoKSBmcm9tIHN0YW5kYXJkIElPIHBhdGggd2hpY2ggZmlyc3QKICAgIGNhbGxzIC0+aW9t YXBfYmVnaW4oKSBhbmQgb25seSB0aGVuIGNhbGxzIC0+YWN0b3IoKSBjYWxsYmFjayB3aGljaCBn cmFicwogICAgZW50cnkgbG9ja3MgZm9yIERBWCAoaWYgaXQgZmF1bHRzIHdoZW4gY29weWluZyBm cm9tL3RvIHVzZXIgcHJvdmlkZWQKICAgIGJ1ZmZlcnMpLgogICAgCiAgICBGaXggdGhlIHByb2Js ZW0gYnkgbmVzdGluZyBncmFiYmluZyBvZiBlbnRyeSBsb2NrIGluc2lkZSAtPmlvbWFwX2JlZ2lu KCkKICAgIC0gLT5pb21hcF9lbmQoKSBwYWlyLgogICAgCiAgICBSZXZpZXdlZC1ieTogUm9zcyBa d2lzbGVyIDxyb3NzLnp3aXNsZXJAbGludXguaW50ZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTog SmFuIEthcmEgPGphY2tAc3VzZS5jej4KICAgIFNpZ25lZC1vZmYtYnk6IERhbiBXaWxsaWFtcyA8 ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29tPgoKY29tbWl0IDFkYjE3NTQyOGVlMzc0NDg5NDQ4MzYx MjEzZTljM2I3NDlkMTQ5MDAKQXV0aG9yOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgpEYXRlOiAg IEZyaSBPY3QgMjEgMTE6MzM6NDkgMjAxNiArLTAyMDAKCiAgICBleHQ0OiBTaW1wbGlmeSBEQVgg ZmF1bHQgcGF0aAogICAgCiAgICBOb3cgdGhhdCBkYXhfaW9tYXBfZmF1bHQoKSBjYWxscyAtPmlv bWFwX2JlZ2luKCkgd2l0aG91dCBlbnRyeSBsb2NrLCB3ZQogICAgY2FuIHVzZSB0cmFuc2FjdGlv biBzdGFydGluZyBpbiBleHQ0X2lvbWFwX2JlZ2luKCkgYW5kIHRodXMgc2ltcGxpZnkKICAgIGV4 dDRfZGF4X2ZhdWx0KCkuIEl0IGFsc28gcHJvdmlkZXMgdXMgcHJvcGVyIHJldHJpZXMgaW4gY2Fz ZSBvZiBFTk9TUEMuCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IEphbiBLYXJhIDxqYWNrQHN1c2Uu Y3o+CiAgICBTaWduZWQtb2ZmLWJ5OiBEYW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVs LmNvbT4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGlu dXgtbnZkaW1tIG1haWxpbmcgbGlzdApMaW51eC1udmRpbW1AbGlzdHMuMDEub3JnCmh0dHBzOi8v bGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbnZkaW1tCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Williams, Dan J" To: "torvalds@linux-foundation.org" CC: "linux-mm@kvack.org" , "linux-nvdimm@lists.01.org" , "jack@suse.cz" , "linux-fsdevel@vger.kernel.org" Subject: [GIT PULL] dax final updates and fixes for 4.10-rc2 Date: Sun, 1 Jan 2017 02:57:56 +0000 Message-ID: <1483239473.2943.17.camel@intel.com> Content-Language: en-US Content-Type: text/plain; charset="utf-7" Content-ID: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Sender: owner-linux-mm@kvack.org List-ID: Hi Linus, please pull from: git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fix= es ...to receive the completion of Jan's DAX work for 4.10. As I mentioned in the libnvdimm-for-4.10 pull request +AFs-1+AF0-, these ar= e some final fixes for the DAX dirty-cacheline-tracking invalidation work that was merged through the -mm, ext4, and xfs trees in -rc1. These patches were prepared prior to the merge window, but we waited for 4.10-rc1 to have a stable merge base after all the prerequisites were merged. Quoting Jan on the overall changes in these patches: So I'd like all these 6 patches to go for rc2. The first three patches fix invalidation of exceptional DAX entries (a bug which is there for a long time) - without these patches data loss can occur on power failure even though user called fsync(2). The other three patches change locking of DAX faults so that -+AD4-iomap+AF8-begin() is called in a more relaxed locking context and we are safe to start a transaction there for ext4. These have received a build success notification from the kbuild robot, and pass the latest libnvdimm unit tests. There have not been any -next releases since -rc1, so they have not appeared there. +AFs-1+AF0-:+AKA-https://lists.01.org/pipermail/linux-nvdimm/2016-December/= 008279.h tml --- The following changes since commit 7ce7d89f48834cefece7804d38fc5d85382edf77= : Linux 4.10-rc1 (2016-12-25 16:13:08 -0800) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fix= es for you to fetch changes up to 1db175428ee374489448361213e9c3b749d14900: ext4: Simplify DAX fault path (2016-12-26 20:29:25 -0800) ---------------------------------------------------------------- Jan Kara (6): ext2: Return BH+AF8-New buffers for zeroed blocks mm: Invalidate DAX radix tree entries only if appropriate dax: Avoid page invalidation races and unnecessary radix tree travers= als dax: Finish fault completely when loading holes dax: Call -+AD4-iomap+AF8-begin without entry lock during dax fault ext4: Simplify DAX fault path fs/dax.c +AHw- 243 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-= +-+-+-+-+-+-+-+-+-+-+-------------------- fs/ext2/inode.c +AHw- 3 +-- fs/ext4/file.c +AHw- 48 +-+-+--------- include/linux/dax.h +AHw- 3 +- mm/truncate.c +AHw- 75 +-+-+-+-+-+-+-+-+-+-+-+-+---- 5 files changed, 229 insertions(+-), 143 deletions(-) commit e568df6b84ff05a22467503afc11bee7a6ba0700 Author: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Date: Wed Aug 10 16:42:53 2016 +-0200 ext2: Return BH+AF8-New buffers for zeroed blocks =20 So far we did not return BH+AF8-New buffers from ext2+AF8-get+AF8-block= s() when we allocated and zeroed-out a block for DAX inode to avoid racy zeroing in DAX code. This zeroing is gone these days so we can remove the workaround. =20 Reviewed-by: Ross Zwisler +ADw-ross.zwisler+AEA-linux.intel.com+AD4- Reviewed-by: Christoph Hellwig +ADw-hch+AEA-lst.de+AD4- Signed-off-by: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Signed-off-by: Dan Williams +ADw-dan.j.williams+AEA-intel.com+AD4- commit c6dcf52c23d2d3fb5235cec42d7dd3f786b87d55 Author: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Date: Wed Aug 10 17:22:44 2016 +-0200 mm: Invalidate DAX radix tree entries only if appropriate =20 Currently invalidate+AF8-inode+AF8-pages2+AF8-range() and invalidate+AF= 8-mapping+AF8-pages() just delete all exceptional radix tree entries they find. For DAX this is not desirable as we track cache dirtiness in these entries and when they are evicted, we may not flush caches although it is necessary. Thi= s can for example manifest when we write to the same block both via mmap and via write(2) (to different offsets) and fsync(2) then does not properly flush CPU caches when modification via write(2) was the last one. =20 Create appropriate DAX functions to handle invalidation of DAX entries for invalidate+AF8-inode+AF8-pages2+AF8-range() and invalidate+AF8-mapp= ing+AF8-pages() and wire them up into the corresponding mm functions. =20 Acked-by: Johannes Weiner +ADw-hannes+AEA-cmpxchg.org+AD4- Reviewed-by: Ross Zwisler +ADw-ross.zwisler+AEA-linux.intel.com+AD4- Signed-off-by: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Signed-off-by: Dan Williams +ADw-dan.j.williams+AEA-intel.com+AD4- commit e3fce68cdbed297d927e993b3ea7b8b1cee545da Author: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Date: Wed Aug 10 17:10:28 2016 +-0200 dax: Avoid page invalidation races and unnecessary radix tree traversal= s =20 Currently dax+AF8-iomap+AF8-rw() takes care of invalidating page tables= and evicting hole pages from the radix tree when write(2) to the file happens. This invalidation is only necessary when there is some block allocation resulting from write(2). Furthermore in current place the invalidation is racy wrt page fault instantiating a hole page just afte= r we have invalidated it. =20 So perform the page invalidation inside dax+AF8-iomap+AF8-actor() where= we can do it only when really necessary and after blocks have been allocated s= o nobody will be instantiating new hole pages anymore. =20 Reviewed-by: Christoph Hellwig +ADw-hch+AEA-lst.de+AD4- Reviewed-by: Ross Zwisler +ADw-ross.zwisler+AEA-linux.intel.com+AD4- Signed-off-by: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Signed-off-by: Dan Williams +ADw-dan.j.williams+AEA-intel.com+AD4- commit f449b936f1aff7696b24a338f493d5cee8d48d55 Author: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Date: Wed Oct 19 14:48:38 2016 +-0200 dax: Finish fault completely when loading holes =20 The only case when we do not finish the page fault completely is when w= e are loading hole pages into a radix tree. Avoid this special case and finish the fault in that case as well inside the DAX fault handler. It will allow us for easier iomap handling. =20 Reviewed-by: Ross Zwisler +ADw-ross.zwisler+AEA-linux.intel.com+AD4- Signed-off-by: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Signed-off-by: Dan Williams +ADw-dan.j.williams+AEA-intel.com+AD4- commit 9f141d6ef6258a3a37a045842d9ba7e68f368956 Author: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Date: Wed Oct 19 14:34:31 2016 +-0200 dax: Call -+AD4-iomap+AF8-begin without entry lock during dax fault =20 Currently -+AD4-iomap+AF8-begin() handler is called with entry lock hel= d. If the filesystem held any locks between -+AD4-iomap+AF8-begin() and -+AD4-iom= ap+AF8-end() (such as ext4 which will want to hold transaction open), this would cau= se lock inversion with the iomap+AF8-apply() from standard IO path which f= irst calls -+AD4-iomap+AF8-begin() and only then calls -+AD4-actor() callbac= k which grabs entry locks for DAX (if it faults when copying from/to user provided buffers). =20 Fix the problem by nesting grabbing of entry lock inside -+AD4-iomap+AF= 8-begin() - -+AD4-iomap+AF8-end() pair. =20 Reviewed-by: Ross Zwisler +ADw-ross.zwisler+AEA-linux.intel.com+AD4- Signed-off-by: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Signed-off-by: Dan Williams +ADw-dan.j.williams+AEA-intel.com+AD4- commit 1db175428ee374489448361213e9c3b749d14900 Author: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Date: Fri Oct 21 11:33:49 2016 +-0200 ext4: Simplify DAX fault path =20 Now that dax+AF8-iomap+AF8-fault() calls -+AD4-iomap+AF8-begin() withou= t entry lock, we can use transaction starting in ext4+AF8-iomap+AF8-begin() and thus sim= plify ext4+AF8-dax+AF8-fault(). It also provides us proper retries in case of= ENOSPC. =20 Signed-off-by: Jan Kara +ADw-jack+AEA-suse.cz+AD4- Signed-off-by: Dan Williams +ADw-dan.j.williams+AEA-intel.com+AD4-= -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org