From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v4 05/12] xenstore: add support for reading directory with many children Date: Mon, 5 Dec 2016 08:48:46 +0100 Message-ID: <20161205074853.13268-6-jgross@suse.com> References: <20161205074853.13268-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cDo1P-0003Rm-T3 for xen-devel@lists.xenproject.org; Mon, 05 Dec 2016 07:49:12 +0000 In-Reply-To: <20161205074853.13268-1-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.xenproject.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+ClJldmlld2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KVjQ6 IHJlbW92ZSBYU19ORVhUX0VOVFJZIGFnYWluIGFzIHJlcXVlc3RlZCBieSBKYW4gQmV1bGljaApW MzogdXNlIGdlbmxlbiwgbWVtY3B5IGluc3RlYWQgb2Ygc3RyY3B5IGFzIHJlcXVlc3RlZCBieSBK YW4gQmV1bGljaAogICAgYWRkIFhTX05FWFRfRU5UUlkgdG8geHNfd2lyZS5oCiAgICBhZGQgWFNf RElSRUNUT1JZX1BBUlQgdG8gc29ja21zZ19zdHJpbmcoKQotLS0KIHRvb2xzL3hlbnN0b3JlL3hl bnN0b3JlZF9jb3JlLmMgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogeGVuL2luY2x1ZGUvcHVibGljL2lvL3hzX3dpcmUuaCB8ICAxICsKIDIgZmlsZXMgY2hh bmdlZCwgNjggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0 b3JlZF9jb3JlLmMgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5jCmluZGV4IDk1ZDZk N2QuLmU0ZTA5ZmEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmMK KysrIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUuYwpAQCAtMTYsNiArMTYsNyBAQAog ICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCiAqLwogCisjaW5jbHVkZSA8aW50dHlwZXMuaD4KICNpbmNsdWRlIDxz eXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUgPHBvbGwuaD4KQEAg LTE0Nyw2ICsxNDgsNyBAQCBzdGF0aWMgY2hhciAqc29ja21zZ19zdHJpbmcoZW51bSB4c2Rfc29j a21zZ190eXBlIHR5cGUpCiAJY2FzZSBYU19SRVNVTUU6IHJldHVybiAiUkVTVU1FIjsKIAljYXNl IFhTX1NFVF9UQVJHRVQ6IHJldHVybiAiU0VUX1RBUkdFVCI7CiAJY2FzZSBYU19SRVNFVF9XQVRD SEVTOiByZXR1cm4gIlJFU0VUX1dBVENIRVMiOworCWNhc2UgWFNfRElSRUNUT1JZX1BBUlQ6IHJl dHVybiAiRElSRUNUT1JZX1BBUlQiOwogCWRlZmF1bHQ6CiAJCXJldHVybiAiKipVTktOT1dOKioi OwogCX0KQEAgLTgxMiw2ICs4MTQsNjcgQEAgc3RhdGljIHZvaWQgc2VuZF9kaXJlY3Rvcnkoc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlzZW5kX3Jl cGx5KGNvbm4sIFhTX0RJUkVDVE9SWSwgbm9kZS0+Y2hpbGRyZW4sIG5vZGUtPmNoaWxkbGVuKTsK IH0KIAorc3RhdGljIHZvaWQgc2VuZF9kaXJlY3RvcnlfcGFydChzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwKKwkJCQlzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCit7CisJdW5zaWduZWQgaW50IG9m ZiwgbGVuLCBtYXhsZW4sIGdlbmxlbjsKKwljaGFyICpuYW1lLCAqY2hpbGQsICpkYXRhOworCXN0 cnVjdCBub2RlICpub2RlOworCWNoYXIgZ2VuWzI0XTsKKworCWlmICh4c19jb3VudF9zdHJpbmdz KGluLT5idWZmZXIsIGluLT51c2VkKSAhPSAyKSB7CisJCXNlbmRfZXJyb3IoY29ubiwgRUlOVkFM KTsKKwkJcmV0dXJuOworCX0KKworCS8qIEZpcnN0IGFyZyBpcyBub2RlIG5hbWUuICovCisJbmFt ZSA9IGNhbm9uaWNhbGl6ZShjb25uLCBpbi0+YnVmZmVyKTsKKworCS8qIFNlY29uZCBhcmcgaXMg Y2hpbGRsaXN0IG9mZnNldC4gKi8KKwlvZmYgPSBhdG9pKGluLT5idWZmZXIgKyBzdHJsZW4oaW4t PmJ1ZmZlcikgKyAxKTsKKworCW5vZGUgPSBnZXRfbm9kZShjb25uLCBpbiwgbmFtZSwgWFNfUEVS TV9SRUFEKTsKKwlpZiAoIW5vZGUpIHsKKwkJc2VuZF9lcnJvcihjb25uLCBlcnJubyk7CisJCXJl dHVybjsKKwl9CisKKwlnZW5sZW4gPSBzbnByaW50ZihnZW4sIHNpemVvZihnZW4pLCAiJSJQUkl1 NjQsIG5vZGUtPmdlbmVyYXRpb24pICsgMTsKKworCS8qIE9mZnNldCBiZWhpbmQgbGlzdDoganVz dCByZXR1cm4gYSBsaXN0IHdpdGggYW4gZW1wdHkgc3RyaW5nLiAqLworCWlmIChvZmYgPj0gbm9k ZS0+Y2hpbGRsZW4pIHsKKwkJZ2VuW2dlbmxlbl0gPSAwOworCQlzZW5kX3JlcGx5KGNvbm4sIFhT X0RJUkVDVE9SWV9QQVJULCBnZW4sIGdlbmxlbiArIDEpOworCQlyZXR1cm47CisJfQorCisJbGVu ID0gMDsKKwltYXhsZW4gPSBYRU5TVE9SRV9QQVlMT0FEX01BWCAtIGdlbmxlbiAtIDE7CisJY2hp bGQgPSBub2RlLT5jaGlsZHJlbiArIG9mZjsKKworCXdoaWxlIChsZW4gKyBzdHJsZW4oY2hpbGQp IDwgbWF4bGVuKSB7CisJCWxlbiArPSBzdHJsZW4oY2hpbGQpICsgMTsKKwkJY2hpbGQgKz0gc3Ry bGVuKGNoaWxkKSArIDE7CisJCWlmIChvZmYgKyBsZW4gPT0gbm9kZS0+Y2hpbGRsZW4pCisJCQli cmVhazsKKwl9CisKKwlkYXRhID0gdGFsbG9jX2FycmF5KGluLCBjaGFyLCBnZW5sZW4gKyBsZW4g KyAxKTsKKwlpZiAoIWRhdGEpIHsKKwkJc2VuZF9lcnJvcihjb25uLCBFTk9NRU0pOworCQlyZXR1 cm47CisJfQorCisJbWVtY3B5KGRhdGEsIGdlbiwgZ2VubGVuKTsKKwltZW1jcHkoZGF0YSArIGdl bmxlbiwgbm9kZS0+Y2hpbGRyZW4gKyBvZmYsIGxlbik7CisJaWYgKG9mZiArIGxlbiA9PSBub2Rl LT5jaGlsZGxlbikgeworCQlkYXRhW2dlbmxlbiArIGxlbl0gPSAwOworCQlsZW4rKzsKKwl9CisK KwlzZW5kX3JlcGx5KGNvbm4sIFhTX0RJUkVDVE9SWV9QQVJULCBkYXRhLCBnZW5sZW4gKyBsZW4p OworfQorCiBzdGF0aWMgdm9pZCBkb19yZWFkKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiB7CiAJc3RydWN0IG5vZGUgKm5vZGU7CkBAIC0xMzM0LDYg KzEzOTcsMTAgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19tZXNzYWdlKHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJCWRvX3Jlc2V0X3dhdGNoZXMoY29u biwgaW4pOwogCQlicmVhazsKIAorCWNhc2UgWFNfRElSRUNUT1JZX1BBUlQ6CisJCXNlbmRfZGly ZWN0b3J5X3BhcnQoY29ubiwgaW4pOworCQlicmVhazsKKwogCWRlZmF1bHQ6CiAJCWVwcmludGYo IkNsaWVudCB1bmtub3duIG9wZXJhdGlvbiAlaSIsIGluLT5oZHIubXNnLnR5cGUpOwogCQlzZW5k X2Vycm9yKGNvbm4sIEVOT1NZUyk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaW8v eHNfd2lyZS5oIGIveGVuL2luY2x1ZGUvcHVibGljL2lvL3hzX3dpcmUuaAppbmRleCAwYTBjZGJj Li41NDVmOTE2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaW8veHNfd2lyZS5oCisr KyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby94c193aXJlLmgKQEAgLTUwLDYgKzUwLDcgQEAgZW51 bSB4c2Rfc29ja21zZ190eXBlCiAgICAgWFNfU0VUX1RBUkdFVCwKICAgICBYU19SRVNUUklDVCwK ICAgICBYU19SRVNFVF9XQVRDSEVTLAorICAgIFhTX0RJUkVDVE9SWV9QQVJULAogCiAgICAgWFNf SU5WQUxJRCA9IDB4ZmZmZiAvKiBHdWFyYW50ZWVkIHRvIHJlbWFpbiBhbiBpbnZhbGlkIHR5cGUg Ki8KIH07Ci0tIAoyLjEwLjIKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK