From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH 1/2] xenstore: add support for reading directory with many children Date: Tue, 25 Oct 2016 07:52:40 +0200 Message-ID: <1477374761-25962-2-git-send-email-jgross@suse.com> References: <1477374761-25962-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: <1477374761-25962-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 , wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, david.vrabel@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org QXMgdGhlIHBheWxvYWQgc2l6ZSBmb3Igb25lIHhlbnN0b3JlIHdpcmUgY29tbWFuZCBpcyBsaW1p dGVkIHRvIDQwOTYKYnl0ZXMgaXQgaXMgaW1wb3NzaWJsZSB0byByZWFkIHRoZSBjaGlsZHJlbiBu YW1lcyBvZiBhIG5vZGUgd2l0aCBhCmxhcmdlIG51bWJlciBvZiBjaGlsZHJlbiAoZS5nLiAvbG9j YWwvZG9tYWluIGluIGNhc2Ugb2YgYSBob3N0IHdpdGgKbW9yZSB0aGFuIGFib3V0IDIwMDAgZG9t YWlucykuIFRoaXMgZWZmZWN0aXZlbHkgbGltaXRzIHRoZSBtYXhpbXVtCm51bWJlciBvZiBkb21h aW5zIGEgaG9zdCBjYW4gc3VwcG9ydC4KCkluIG9yZGVyIHRvIHN1cHBvcnQgc3VjaCBsb25nIGRp cmVjdG9yeSBvdXRwdXRzIGFkZCBhIG5ldyB3aXJlIGNvbW1hbmQKWFNfRElSRUNUT1JZX1BBUlQg d2hpY2ggd2lsbCByZXR1cm4gb25seSBzb21lIGVudHJpZXMgaW4gZWFjaCBjYWxsIGFuZApjYW4g YmUgY2FsbGVkIGluIGEgbG9vcCB0byBnZXQgYWxsIGVudHJpZXMuIEZvciB0aGlzIHRvIHdvcmsg cmVsaWFibHkKdGhlIGxvb3AgdXNpbmcgWFNfRElSRUNUT1JZX1BBUlQgdW50aWwgbm8gZnVydGhl ciBlbnRyaWVzIGFyZSByZXR1cm5lZAptdXN0IGJlIGluIG9uZSB0cmFuc2FjdGlvbi4KClVzaW5n IFhTX0RJUkVDVE9SWV9QQVJUIHdpdGggYSB2YWxpZCBwYXRoIHdpbGwgc3RhcnQgdGhlIHRyYW5z bWlzc2lvbgpieSBjb3B5aW5nIHRoZSBsaXN0IG9mIGNoaWxkcmVuIHRvIGEgeGVuc3RvcmVkIGlu dGVybmFsIGJ1ZmZlciBsaW5rZWQKdG8gdGhlIHRyYW5zYWN0aW9uLiBGdXJ0aGVyIGNhbGxzIG9m IFhTX0RJUkVDVE9SWV9QQVJUIHdpdGggYSBwYXRoICJAIgp3aWxsIGFkdmFuY2UgaW4gdGhlIGJ1 ZmZlci4gVGhlIGVuZCBvZiB0aGUgb3V0cHV0IGlzIGluZGljYXRlZCBieSBhbgplbXB0eSBjaGls ZCBuYW1lLiBUaGUgaW50ZXJuYWwgYnVmZmVyIGlzIHJlbGVhc2VkIHdoZW46CgotIHRoZSBidWZm ZXIgaXMgZXhoYXVzdGVkCi0gWFNfRElSRUNUT1JZIG9yIFhTX0RJUkVDVE9SWV9QQVJUIHdpdGgg YSB2YWxpZCBwYXRoIGlzIGNhbGxlZAogICh0aGlzIHdpbGwgYWxsb2NhdGUgYSBuZXcgYnVmZmVy LCBvZiBjb3Vyc2UpCi0gdGhlIHRyYW5zYWN0aW9uIGlzIHRlcm1pbmF0ZWQgKGV4cGxpY2l0IG9y IGltcGxpY2l0IHRlcm1pbmF0aW9uKQoKVGhlIG51bWJlciBvZiBlbnRyaWVzIHJldHVybmVkIGZv ciBlYWNoIGNhbGwgaXMgaW1wbGVtZW50YXRpb24Kc3BlY2lmaWMuIFRoZSBvbmx5IGd1YXJhbnRl ZSBpcyB0aGF0IG5vIGNhbGwgd2lsbCBleGNlZWQgdGhlIGxpbWl0IG9mCjQwOTYgYnl0ZXMgcmV0 dXJuZWQuCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Ci0t LQogdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUuYyAgICAgICAgfCAgNCArKysKIHRvb2xz L3hlbnN0b3JlL3hlbnN0b3JlZF90cmFuc2FjdGlvbi5jIHwgNTcgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3RyYW5zYWN0aW9uLmgg fCAgMSArCiB4ZW4vaW5jbHVkZS9wdWJsaWMvaW8veHNfd2lyZS5oICAgICAgICB8ICAxICsKIDQg ZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0 b3JlL3hlbnN0b3JlZF9jb3JlLmMgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5jCmlu ZGV4IDNkZjk3N2IuLjk2NjdjZTUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3Jl ZF9jb3JlLmMKKysrIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUuYwpAQCAtMTMyNyw2 ICsxMzI3LDEwIEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfbWVzc2FnZShzdHJ1Y3QgY29ubmVjdGlv biAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCQlkb19yZXNldF93YXRjaGVzKGNv bm4sIGluKTsKIAkJYnJlYWs7CiAKKwljYXNlIFhTX0RJUkVDVE9SWV9QQVJUOgorCQlzZW5kX2Rp cmVjdG9yeV9wYXJ0KGNvbm4sIGluKTsKKwkJYnJlYWs7CisKIAlkZWZhdWx0OgogCQllcHJpbnRm KCJDbGllbnQgdW5rbm93biBvcGVyYXRpb24gJWkiLCBpbi0+aGRyLm1zZy50eXBlKTsKIAkJc2Vu ZF9lcnJvcihjb25uLCBFTk9TWVMpOwpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3Rv cmVkX3RyYW5zYWN0aW9uLmMgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24u YwppbmRleCAzNDcyMGZhLi4yMmE1MWRhIDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5z dG9yZWRfdHJhbnNhY3Rpb24uYworKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNh Y3Rpb24uYwpAQCAtNzksNiArNzksMTEgQEAgc3RydWN0IHRyYW5zYWN0aW9uCiAKIAkvKiBMaXN0 IG9mIGNoYW5nZWQgZG9tYWlucyAtIHRvIHJlY29yZCB0aGUgY2hhbmdlZCBkb21haW4gZW50cnkg bnVtYmVyICovCiAJc3RydWN0IGxpc3RfaGVhZCBjaGFuZ2VkX2RvbWFpbnM7CisKKwkvKiBUZW1w b3JhcnkgYnVmZmVyIGZvciBYU19ESVJFQ1RPUllfUEFSVC4gKi8KKwljaGFyICpkaXJwYXJ0X2J1 ZjsKKwl1bnNpZ25lZCBidWZfb2ZmOworCXVuc2lnbmVkIGJ1Zl9sZW47CiB9OwogCiBleHRlcm4g aW50IHF1b3RhX21heF90cmFuc2FjdGlvbjsKQEAgLTI4MCw2ICsyODUsNTggQEAgdm9pZCBjb25u X2RlbGV0ZV9hbGxfdHJhbnNhY3Rpb25zKHN0cnVjdCBjb25uZWN0aW9uICpjb25uKQogCWNvbm4t PnRyYW5zYWN0aW9uX3N0YXJ0ZWQgPSAwOwogfQogCit2b2lkIHNlbmRfZGlyZWN0b3J5X3BhcnQo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKK3sKKwlz dHJ1Y3QgdHJhbnNhY3Rpb24gKnRyYW5zID0gY29ubi0+dHJhbnNhY3Rpb247CisJc3RydWN0IG5v ZGUgKm5vZGU7CisJY29uc3QgY2hhciAqbmFtZSA9IG9uZWFyZyhpbik7CisJdW5zaWduZWQgbGVu OworCisJaWYgKG5hbWUgPT0gTlVMTCB8fCB0cmFucyA9PSBOVUxMKSB7CisJCXNlbmRfZXJyb3Io Y29ubiwgRUlOVkFMKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChuYW1lWzBdID09ICdAJyAmJiBu YW1lWzFdID09IDApIHsKKwkJaWYgKHRyYW5zLT5kaXJwYXJ0X2J1ZiA9PSBOVUxMKSB7CisJCQlz ZW5kX2Vycm9yKGNvbm4sIEVJTlZBTCk7CisJCQlyZXR1cm47CisJCX0KKwl9IGVsc2UgeworCQlp ZiAodHJhbnMtPmRpcnBhcnRfYnVmKSB7CisJCQl0YWxsb2NfZnJlZSh0cmFucy0+ZGlycGFydF9i dWYpOworCQkJdHJhbnMtPmRpcnBhcnRfYnVmID0gTlVMTDsKKwkJfQorCisJCW5hbWUgPSBjYW5v bmljYWxpemUoY29ubiwgbmFtZSk7CisJCW5vZGUgPSBnZXRfbm9kZShjb25uLCBpbiwgbmFtZSwg WFNfUEVSTV9SRUFEKTsKKwkJaWYgKCFub2RlKSB7CisJCQlzZW5kX2Vycm9yKGNvbm4sIGVycm5v KTsKKwkJCXJldHVybjsKKwkJfQorCQl0cmFucy0+ZGlycGFydF9idWYgPSB0YWxsb2NfYXJyYXko dHJhbnMsIGNoYXIsCisJCQkJCQkgIG5vZGUtPmNoaWxkbGVuICsgMSk7CisJCW1lbWNweSh0cmFu cy0+ZGlycGFydF9idWYsIG5vZGUtPmNoaWxkcmVuLCBub2RlLT5jaGlsZGxlbik7CisJCXRyYW5z LT5kaXJwYXJ0X2J1Zltub2RlLT5jaGlsZGxlbl0gPSAwOworCQl0cmFucy0+YnVmX29mZiA9IDA7 CisJCXRyYW5zLT5idWZfbGVuID0gbm9kZS0+Y2hpbGRsZW4gKyAxOworCX0KKworCWlmICh0cmFu cy0+YnVmX2xlbiAtIHRyYW5zLT5idWZfb2ZmID4gMTAyNCkKKwkJbGVuID0gc3RybGVuKHRyYW5z LT5kaXJwYXJ0X2J1ZiArIHRyYW5zLT5idWZfb2ZmKSArIDE7CisJZWxzZQorCQlsZW4gPSB0cmFu cy0+YnVmX2xlbiAtIHRyYW5zLT5idWZfb2ZmOworCisJc2VuZF9yZXBseShjb25uLCBYU19ESVJF Q1RPUllfUEFSVCwgdHJhbnMtPmRpcnBhcnRfYnVmICsgdHJhbnMtPmJ1Zl9vZmYsCisJCSAgIGxl bik7CisKKwl0cmFucy0+YnVmX29mZiArPSBsZW47CisJaWYgKHRyYW5zLT5idWZfb2ZmID09IHRy YW5zLT5idWZfbGVuKSB7CisJCXRhbGxvY19mcmVlKHRyYW5zLT5kaXJwYXJ0X2J1Zik7CisJCXRy YW5zLT5kaXJwYXJ0X2J1ZiA9IE5VTEw7CisJfQorfQorCiAvKgogICogTG9jYWwgdmFyaWFibGVz OgogICogIGMtZmlsZS1zdHlsZTogImxpbnV4IgpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUv eGVuc3RvcmVkX3RyYW5zYWN0aW9uLmggYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNh Y3Rpb24uaAppbmRleCAwYzg2OGVlLi43ZTllMTg3IDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9y ZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uaAorKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRf dHJhbnNhY3Rpb24uaApAQCAtMzgsNSArMzgsNiBAQCB2b2lkIGFkZF9jaGFuZ2Vfbm9kZShzdHJ1 Y3QgdHJhbnNhY3Rpb24gKnRyYW5zLCBjb25zdCBjaGFyICpub2RlLAogVERCX0NPTlRFWFQgKnRk Yl90cmFuc2FjdGlvbl9jb250ZXh0KHN0cnVjdCB0cmFuc2FjdGlvbiAqdHJhbnMpOwogCiB2b2lk IGNvbm5fZGVsZXRlX2FsbF90cmFuc2FjdGlvbnMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4pOwor dm9pZCBzZW5kX2RpcmVjdG9yeV9wYXJ0KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qg YnVmZmVyZWRfZGF0YSAqaW4pOwogCiAjZW5kaWYgLyogX1hFTlNUT1JFRF9UUkFOU0FDVElPTl9I ICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaW8veHNfd2lyZS5oIGIveGVuL2lu Y2x1ZGUvcHVibGljL2lvL3hzX3dpcmUuaAppbmRleCAwYTBjZGJjLi41NDVmOTE2IDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaW8veHNfd2lyZS5oCisrKyBiL3hlbi9pbmNsdWRlL3B1 YmxpYy9pby94c193aXJlLmgKQEAgLTUwLDYgKzUwLDcgQEAgZW51bSB4c2Rfc29ja21zZ190eXBl CiAgICAgWFNfU0VUX1RBUkdFVCwKICAgICBYU19SRVNUUklDVCwKICAgICBYU19SRVNFVF9XQVRD SEVTLAorICAgIFhTX0RJUkVDVE9SWV9QQVJULAogCiAgICAgWFNfSU5WQUxJRCA9IDB4ZmZmZiAv KiBHdWFyYW50ZWVkIHRvIHJlbWFpbiBhbiBpbnZhbGlkIHR5cGUgKi8KIH07Ci0tIAoyLjYuNgoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=