From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v2 6/7] xenstore: add support for reading directory with many children Date: Thu, 27 Oct 2016 11:55:57 +0200 Message-ID: <1477562158-26618-7-git-send-email-jgross@suse.com> References: <1477562158-26618-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1477562158-26618-1-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Juergen Gross , sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org QXMgdGhlIHBheWxvYWQgc2l6ZSBmb3Igb25lIHhlbnN0b3JlIHdpcmUgY29tbWFuZCBpcyBsaW1p dGVkIHRvIDQwOTYKYnl0ZXMgaXQgaXMgaW1wb3NzaWJsZSB0byByZWFkIHRoZSBjaGlsZHJlbiBu YW1lcyBvZiBhIG5vZGUgd2l0aCBhCmxhcmdlIG51bWJlciBvZiBjaGlsZHJlbiAoZS5nLiAvbG9j YWwvZG9tYWluIGluIGNhc2Ugb2YgYSBob3N0IHdpdGgKbW9yZSB0aGFuIGFib3V0IDIwMDAgZG9t YWlucykuIFRoaXMgZWZmZWN0aXZlbHkgbGltaXRzIHRoZSBtYXhpbXVtCm51bWJlciBvZiBkb21h aW5zIGEgaG9zdCBjYW4gc3VwcG9ydC4KCkluIG9yZGVyIHRvIHN1cHBvcnQgc3VjaCBsb25nIGRp cmVjdG9yeSBvdXRwdXRzIGFkZCBhIG5ldyB3aXJlIGNvbW1hbmQKWFNfRElSRUNUT1JZX1BBUlQg d2hpY2ggd2lsbCByZXR1cm4gb25seSBzb21lIGVudHJpZXMgaW4gZWFjaCBjYWxsIGFuZApjYW4g YmUgY2FsbGVkIGluIGEgbG9vcCB0byBnZXQgYWxsIGVudHJpZXMuCgpJbnB1dCBkYXRhIGFyZSB0 aGUgcGF0aCBvZiB0aGUgbm9kZSBhbmQgdGhlIGJ5dGUgb2Zmc2V0IGludG8gdGhlIGNoaWxkCmxp c3Qgd2hlcmUgcmV0dXJuZWQgZGF0YSBzaG91bGQgc3RhcnQuCgpPdXRwdXQgaXMgdGhlIGdlbmVy YXRpb24gY291bnQgb2YgdGhlIG5vZGUgKHdoaWNoIHdpbGwgY2hhbmdlIGVhY2ggdGltZQp0aGUg bm9kZSBpcyBiZWluZyBtb2RpZmllZCkgYW5kIGEgbGlzdCBvZiBjaGlsZCBuYW1lcyBzdGFydGlu ZyB3aXRoCnRoZSBzcGVjaWZpZWQgaW5kZXguIFRoZSBlbmQgb2YgdGhlIGxpc3QgaXMgaW5kaWNh dGVkIGJ5IGFuIGVtcHR5CmNoaWxkIG5hbWUuIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0 aGUgY2FsbGVyIHRvIGNoZWNrIGZvciBkYXRhCmNvbnNpc3RlbmN5IGJ5IGNvbXBhcmluZyB0aGUg Z2VuZXJhdGlvbiBjb3VudHMgb2YgYWxsIHJldHVybmVkIGRhdGEKc2V0cyB0byBiZSB0aGUgc2Ft ZSBmb3Igb25lIG5vZGUuCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3Vz ZS5jb20+Ci0tLQogdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUuYyB8IDY3ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaW8v eHNfd2lyZS5oIHwgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUuYyBiL3Rvb2xzL3hlbnN0b3Jl L3hlbnN0b3JlZF9jb3JlLmMKaW5kZXggOTVkNmQ3ZC4uZWNlZTRlMiAxMDA2NDQKLS0tIGEvdG9v bHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUuYworKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9y ZWRfY29yZS5jCkBAIC0xNiw2ICsxNiw3IEBACiAgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07 IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCiAKKyNpbmNs dWRlIDxpbnR0eXBlcy5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHN5cy9z dGF0Lmg+CiAjaW5jbHVkZSA8cG9sbC5oPgpAQCAtODEyLDYgKzgxMyw2OCBAQCBzdGF0aWMgdm9p ZCBzZW5kX2RpcmVjdG9yeShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVk X2RhdGEgKmluKQogCXNlbmRfcmVwbHkoY29ubiwgWFNfRElSRUNUT1JZLCBub2RlLT5jaGlsZHJl biwgbm9kZS0+Y2hpbGRsZW4pOwogfQogCitzdGF0aWMgdm9pZCBzZW5kX2RpcmVjdG9yeV9wYXJ0 KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAorCQkJCXN0cnVjdCBidWZmZXJlZF9kYXRhICppbikK K3sKKwl1bnNpZ25lZCBpbnQgb2ZmLCBsZW4sIG1heGxlbiwgZ2VubGVuOworCWNoYXIgKm5hbWUs ICpjaGlsZCwgKmRhdGE7CisJc3RydWN0IG5vZGUgKm5vZGU7CisJY2hhciBnZW5bMjRdOworCisJ aWYgKHhzX2NvdW50X3N0cmluZ3MoaW4tPmJ1ZmZlciwgaW4tPnVzZWQpICE9IDIpIHsKKwkJc2Vu ZF9lcnJvcihjb25uLCBFSU5WQUwpOworCQlyZXR1cm47CisJfQorCisJLyogRmlyc3QgYXJnIGlz IG5vZGUgbmFtZS4gKi8KKwluYW1lID0gY2Fub25pY2FsaXplKGNvbm4sIGluLT5idWZmZXIpOwor CisJLyogU2Vjb25kIGFyZyBpcyBjaGlsZGxpc3Qgb2Zmc2V0LiAqLworCW9mZiA9IGF0b2koaW4t PmJ1ZmZlciArIHN0cmxlbihpbi0+YnVmZmVyKSArIDEpOworCisJbm9kZSA9IGdldF9ub2RlKGNv bm4sIGluLCBuYW1lLCBYU19QRVJNX1JFQUQpOworCWlmICghbm9kZSkgeworCQlzZW5kX2Vycm9y KGNvbm4sIGVycm5vKTsKKwkJcmV0dXJuOworCX0KKworCWdlbmxlbiA9IHNucHJpbnRmKGdlbiwg c2l6ZW9mKGdlbiksICIlIlBSSXU2NCwgbm9kZS0+Z2VuZXJhdGlvbikgKyAxOworCisJLyogT2Zm c2V0IGJlaGluZCBsaXN0OiBqdXN0IHJldHVybiBhIGxpc3Qgd2l0aCBhbiBlbXB0eSBzdHJpbmcu ICovCisJaWYgKG9mZiA+PSBub2RlLT5jaGlsZGxlbikgeworCQlsZW4gPSBzdHJsZW4oZ2VuKSAr IDI7CisJCWdlbltsZW4gLSAxXSA9IDA7CisJCXNlbmRfcmVwbHkoY29ubiwgWFNfRElSRUNUT1JZ X1BBUlQsIGdlbiwgbGVuKTsKKwkJcmV0dXJuOworCX0KKworCWxlbiA9IDA7CisJbWF4bGVuID0g WEVOU1RPUkVfUEFZTE9BRF9NQVggLSBnZW5sZW4gLSAxOworCWNoaWxkID0gbm9kZS0+Y2hpbGRy ZW4gKyBvZmY7CisKKwl3aGlsZSAobGVuICsgc3RybGVuKGNoaWxkKSA8IG1heGxlbikgeworCQls ZW4gKz0gc3RybGVuKGNoaWxkKSArIDE7CisJCWNoaWxkICs9IHN0cmxlbihjaGlsZCkgKyAxOwor CQlpZiAob2ZmICsgbGVuID09IG5vZGUtPmNoaWxkbGVuKQorCQkJYnJlYWs7CisJfQorCisJZGF0 YSA9IHRhbGxvY19hcnJheShpbiwgY2hhciwgZ2VubGVuICsgbGVuICsgMSk7CisJaWYgKCFkYXRh KSB7CisJCXNlbmRfZXJyb3IoY29ubiwgRU5PTUVNKTsKKwkJcmV0dXJuOworCX0KKworCXN0cmNw eShkYXRhLCBnZW4pOworCW1lbWNweShkYXRhICsgZ2VubGVuLCBub2RlLT5jaGlsZHJlbiArIG9m ZiwgbGVuKTsKKwlpZiAob2ZmICsgbGVuID09IG5vZGUtPmNoaWxkbGVuKSB7CisJCWxlbisrOwor CQlkYXRhW2dlbmxlbiArIGxlbl0gPSAwOworCX0KKworCXNlbmRfcmVwbHkoY29ubiwgWFNfRElS RUNUT1JZX1BBUlQsIGRhdGEsIGdlbmxlbiArIGxlbik7Cit9CisKIHN0YXRpYyB2b2lkIGRvX3Jl YWQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIHsK IAlzdHJ1Y3Qgbm9kZSAqbm9kZTsKQEAgLTEzMzQsNiArMTM5NywxMCBAQCBzdGF0aWMgdm9pZCBw cm9jZXNzX21lc3NhZ2Uoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9k YXRhICppbikKIAkJZG9fcmVzZXRfd2F0Y2hlcyhjb25uLCBpbik7CiAJCWJyZWFrOwogCisJY2Fz ZSBYU19ESVJFQ1RPUllfUEFSVDoKKwkJc2VuZF9kaXJlY3RvcnlfcGFydChjb25uLCBpbik7CisJ CWJyZWFrOworCiAJZGVmYXVsdDoKIAkJZXByaW50ZigiQ2xpZW50IHVua25vd24gb3BlcmF0aW9u ICVpIiwgaW4tPmhkci5tc2cudHlwZSk7CiAJCXNlbmRfZXJyb3IoY29ubiwgRU5PU1lTKTsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9pby94c193aXJlLmggYi94ZW4vaW5jbHVkZS9w dWJsaWMvaW8veHNfd2lyZS5oCmluZGV4IDBhMGNkYmMuLjU0NWY5MTYgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL3B1YmxpYy9pby94c193aXJlLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2lv L3hzX3dpcmUuaApAQCAtNTAsNiArNTAsNyBAQCBlbnVtIHhzZF9zb2NrbXNnX3R5cGUKICAgICBY U19TRVRfVEFSR0VULAogICAgIFhTX1JFU1RSSUNULAogICAgIFhTX1JFU0VUX1dBVENIRVMsCisg ICAgWFNfRElSRUNUT1JZX1BBUlQsCiAKICAgICBYU19JTlZBTElEID0gMHhmZmZmIC8qIEd1YXJh bnRlZWQgdG8gcmVtYWluIGFuIGludmFsaWQgdHlwZSAqLwogfTsKLS0gCjIuNi42CgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==