From mboxrd@z Thu Jan 1 00:00:00 1970 From: thornber@redhat.com Subject: Re: [PATCH 6/8] [persistent-data] Add a transactional array. Date: Mon, 28 Jan 2013 14:57:36 +0000 Message-ID: <20130128145735.GE2442@raspberrypi> References: <1355429956-22785-1-git-send-email-ejt@redhat.com> <1355429956-22785-7-git-send-email-ejt@redhat.com> <20130125201106.GJ3122@agk-dp.fab.redhat.com> Reply-To: device-mapper development Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20130125201106.GJ3122@agk-dp.fab.redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: Joe Thornber , dm-devel@redhat.com List-Id: dm-devel.ids QWxhc2RhaXIsCgpJJ3ZlIGp1c3QgcHVzaGVkIGEgc2VyaWVzIG9mIHBhdGNoZXMgdG8gdGhpbi1k ZXYsIGFuZCBhbGwtY2FjaGVzIHRoYXQKYWRkcmVzcyB0aGVzZS4KCkkndmUgcmVmYWN0b3JlZCB0 aGUgZ3JvdygpIGZ1bmN0aW9uLCBicmVha2luZyBpdCB1cCB0byByZWR1Y2UKaW5kZW50YXRpb24u ICBIb3dldmVyLCBJJ3ZlIGxlZnQgaW4gJ2Vsc2UnIGNsYXVzZXMuICBJIGZpbmQgdGhlCmZvbGxv d2luZyBzYXlzICd0aGVyZSBhcmUgdGhyZWUgb3B0aW9ucycgLi4uCgogICAgICAgIGlmIChyZXNp emUtPm5ld19ucl9mdWxsX2Jsb2NrcyA+IHJlc2l6ZS0+b2xkX25yX2Z1bGxfYmxvY2tzKQogICAg ICAgICAgICAgICAgcmV0dXJuIGdyb3dfbmVlZHNfbW9yZV9ibG9ja3MocmVzaXplKTsKCiAgICAg ICAgZWxzZSBpZiAocmVzaXplLT5vbGRfbnJfZW50cmllc19pbl9sYXN0X2Jsb2NrKQogICAgICAg ICAgICAgICAgcmV0dXJuIGdyb3dfZXh0ZW5kX3RhaWxfYmxvY2socmVzaXplLCByZXNpemUtPm5l d19ucl9lbnRyaWVzX2luX2xhc3RfYmxvY2spOwoKICAgICAgICBlbHNlCiAgICAgICAgICAgICAg ICByZXR1cm4gZ3Jvd19hZGRfdGFpbF9ibG9jayhyZXNpemUpOwoKCi4uLiBtb3JlIGNsZWFybHkg dGhhbiAuLi4KCiAgICAgICAgaWYgKHJlc2l6ZS0+bmV3X25yX2Z1bGxfYmxvY2tzID4gcmVzaXpl LT5vbGRfbnJfZnVsbF9ibG9ja3MpCiAgICAgICAgICAgICAgICByZXR1cm4gZ3Jvd19uZWVkc19t b3JlX2Jsb2NrcyhyZXNpemUpOwoKICAgICAgICBlbHNlIGlmIChyZXNpemUtPm9sZF9ucl9lbnRy aWVzX2luX2xhc3RfYmxvY2spCiAgICAgICAgICAgICAgICByZXR1cm4gZ3Jvd19leHRlbmRfdGFp bF9ibG9jayhyZXNpemUsIHJlc2l6ZS0+bmV3X25yX2VudHJpZXNfaW5fbGFzdF9ibG9jayk7Cgog ICAgICAgIHJldHVybiBncm93X2FkZF90YWlsX2Jsb2NrKHJlc2l6ZSk7CgoKV2lsbCBjaGFuZ2Ug aWYgeW91J3JlIHN0aWxsIGhhdmluZyB0cm91YmxlIHdpdGggaXQgdGhvdWdoLgoKLSBKb2UKCgpP biBGcmksIEphbiAyNSwgMjAxMyBhdCAwODoxMTowNlBNICswMDAwLCBBbGFzZGFpciBHIEtlcmdv biB3cm90ZToKPiBPbiBUaHUsIERlYyAxMywgMjAxMiBhdCAwODoxOToxNFBNICswMDAwLCBKb2Ug VGhvcm5iZXIgd3JvdGU6Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRh dGEvZG0tYXJyYXkuYyBiL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLWFycmF5LmMKPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwLi5kNzYyY2FmCj4gPiAtLS0g L2Rldi9udWxsCj4gPiArKysgYi9kcml2ZXJzL21kL3BlcnNpc3RlbnQtZGF0YS9kbS1hcnJheS5j Cj4gPiBAQCAtMCwwICsxLDgxOCBAQAo+IAo+ID4gK3N0YXRpYyBpbnQgYXJyYXlfYmxvY2tfY2hl Y2soc3RydWN0IGRtX2Jsb2NrX3ZhbGlkYXRvciAqdiwKPiA+ICsJCQkgICAgIHN0cnVjdCBkbV9i bG9jayAqYiwKPiA+ICsJCQkgICAgIHNpemVfdCBibG9ja19zaXplKQo+IAo+IFBsZWFzZSByZW5h bWUgYmxvY2tfc2l6ZSB0aHJvdWdob3V0IHRvIGF2b2lkIGFueSBwb3NzaWJsZSBjb25mdXNpb24K PiB3aXRoIHRoZSBpbmxpbmUgZnVuY3Rpb24gb2YgdGhlIHNhbWUgbmFtZS4KPiAKPiA+ICt7Cj4g PiArCXN0cnVjdCBhcnJheV9ibG9jayAqYmhfbGUgPSBkbV9ibG9ja19kYXRhKGIpOwo+ID4gKwlf X2xlMzIgY3N1bV9kaXNrOwo+ID4gKwo+ID4gKwlpZiAoZG1fYmxvY2tfbG9jYXRpb24oYikgIT0g bGU2NF90b19jcHUoYmhfbGUtPmJsb2NrbnIpKSB7Cj4gPiArCQlETUVSUl9MSU1JVCgiYXJyYXlf YmxvY2tfY2hlY2sgZmFpbGVkOiBibG9ja25yICVsbHUgIT0gd2FudGVkICVsbHUiLAo+ID4gKwkJ CSAgICBsZTY0X3RvX2NwdShiaF9sZS0+YmxvY2tuciksIGRtX2Jsb2NrX2xvY2F0aW9uKGIpKTsK PiAKPiBXZSBnZW5lcmFsbHkgdXNlIGFuIGV4cGxpY2l0IGNhc3QgdG8gKHVuc2lnbmVkIGxvbmcg bG9uZykgdG8gYXZvaWQgd2FybmluZ3MKPiBvbiBzb21lIGFyY2hzLiAgKENoZWNrIHRoZSBvdGhl ciBwbGFjZXMgd2l0aCBmb3JtYXQgc3RyaW5ncyB0b28uKQo+IAo+ID4gK3N0YXRpYyB1aW50MzJf dCBjYWxjX21heF9lbnRyaWVzKHNpemVfdCB2YWx1ZV9zaXplLCBzaXplX3QgYmxvY2tfc2l6ZSkK PiA+ICt7Cj4gPiArCXJldHVybiAoYmxvY2tfc2l6ZSAtIHNpemVvZihzdHJ1Y3QgYXJyYXlfYmxv Y2spKSAvIHZhbHVlX3NpemU7Cj4gPiArfQo+IAo+IDogd2FybmluZzogY29udmVyc2lvbiB0byDi gJh1aW50MzJfdOKAmSBmcm9tIOKAmGxvbmcgdW5zaWduZWQgaW504oCZIG1heSBhbHRlciBpdHMg dmFsdWUKPiAKPiBQZXJoYXBzIHNvbWUgb2YgdGhlIGltcGxpY3QgY2FzdGluZyBjb3VsZCBiZSB0 aWRpZWQgYSBiaXQsIGJ1dCBJIGhhdmVuJ3Qgc3BvdHRlZAo+IGFueSBwbGFjZXMgd2hlcmUgaXQg Y2F1c2VzIHJlYWwgcHJvYmxlbXMuCj4gCj4gPiArc3RhdGljIGludCBpbnNlcnRfZnVsbF9hYmxv Y2tzKHN0cnVjdCBkbV9hcnJheV9pbmZvICppbmZvLCBzaXplX3QgYmxvY2tfc2l6ZSwKPiA+ICsJ CQkgICAgICAgdW5zaWduZWQgYmVnaW5fYmxvY2ssIHVuc2lnbmVkIGVuZF9ibG9jaywKPiA+ICsJ CQkgICAgICAgdW5zaWduZWQgbWF4X2VudHJpZXMsIGNvbnN0IHZvaWQgKnZhbHVlLAo+ID4gKwkJ CSAgICAgICBkbV9ibG9ja190ICpyb290KQo+ID4gK3sKPiA+ICsJaW50IHI7Cj4gPiArCXN0cnVj dCBkbV9ibG9jayAqYmxvY2s7Cj4gPiArCXN0cnVjdCBhcnJheV9ibG9jayAqYWI7Cj4gPiArCj4g PiArCj4gCj4gRXh0cmEgYmxhbmsgbGluZS4KPiAKPiA+ICsJd2hpbGUgKGJlZ2luX2Jsb2NrICE9 IGVuZF9ibG9jaykgewo+ID4gKwkJciA9IGFsbG9jX2FibG9jayhpbmZvLCBibG9ja19zaXplLCAm YmxvY2ssICZhYik7Cj4gPiArCQlpZiAocikKPiA+ICsJCQlyZXR1cm4gcjsKPiA+ICsKPiA+ICsJ CWZpbGxfYWJsb2NrKGluZm8sIGFiLCB2YWx1ZSwgbGUzMl90b19jcHUoYWItPm1heF9lbnRyaWVz KSk7Cj4gCj4gbWF4X2VudHJpZXMgZnVuY3Rpb24gcGFyYW1ldGVyIGlzIHVudXNlZCAtIHdoaWNo IHNob3VsZCBpdCBiZT8KPiAKPiA+ICtzdGF0aWMgaW50IGdyb3coc3RydWN0IHJlc2l6ZSAqcmVz aXplKQo+ID4gK3sKPiA+ICsJaW50IHI7Cj4gPiArCXN0cnVjdCBkbV9ibG9jayAqYmxvY2s7Cj4g PiArCXN0cnVjdCBhcnJheV9ibG9jayAqYWI7Cj4gPiArCj4gPiArCWlmIChyZXNpemUtPm5ld19u cl9mdWxsX2Jsb2NrcyA+IHJlc2l6ZS0+b2xkX25yX2Z1bGxfYmxvY2tzKSB7Cj4gPiArCQkvKgo+ ID4gKwkJICogUGFkIHRoZSBlbmQgb2YgdGhlIG9sZCBibG9jaz8KPiA+ICsJCSAqLwo+ID4gKwkJ aWYgKHJlc2l6ZS0+b2xkX25yX2VudHJpZXNfaW5fbGFzdF9ibG9jayA+IDApIHsKPiA+ICsJCQly ID0gc2hhZG93X2FibG9jayhyZXNpemUtPmluZm8sICZyZXNpemUtPnJvb3QsCj4gPiArCQkJCQkg IHJlc2l6ZS0+b2xkX25yX2Z1bGxfYmxvY2tzLCAmYmxvY2ssICZhYik7Cj4gPiArCQkJaWYgKHIp Cj4gPiArCQkJCXJldHVybiByOwo+ID4gKwo+ID4gKwkJCWZpbGxfYWJsb2NrKHJlc2l6ZS0+aW5m bywgYWIsIHJlc2l6ZS0+dmFsdWUsIHJlc2l6ZS0+bWF4X2VudHJpZXMpOwo+ID4gKwkJCXVubG9j a19hYmxvY2socmVzaXplLT5pbmZvLCBibG9jayk7Cj4gPiArCQl9Cj4gPiArCj4gPiArCQkvKgo+ ID4gKwkJICogQWRkIHRoZSBmdWxsIGJsb2Nrcy4KPiA+ICsJCSAqLwo+ID4gKwkJciA9IGluc2Vy dF9mdWxsX2FibG9ja3MocmVzaXplLT5pbmZvLCByZXNpemUtPmJsb2NrX3NpemUsCj4gPiArCQkJ CQlyZXNpemUtPm9sZF9ucl9mdWxsX2Jsb2NrcywKPiA+ICsJCQkJCXJlc2l6ZS0+bmV3X25yX2Z1 bGxfYmxvY2tzLAo+ID4gKwkJCQkJcmVzaXplLT5tYXhfZW50cmllcywgcmVzaXplLT52YWx1ZSwK PiA+ICsJCQkJCSZyZXNpemUtPnJvb3QpOwo+ID4gKwkJaWYgKHIpCj4gPiArCQkJcmV0dXJuIHI7 Cj4gPiArCj4gPiArCQkvKgo+ID4gKwkJICogQWRkIG5ldyB0YWlsIGJsb2NrPwo+ID4gKwkJICov Cj4gPiArCQlpZiAocmVzaXplLT5uZXdfbnJfZW50cmllc19pbl9sYXN0X2Jsb2NrKQo+ID4gKwkJ CXIgPSBpbnNlcnRfcGFydGlhbF9hYmxvY2socmVzaXplLT5pbmZvLCByZXNpemUtPmJsb2NrX3Np emUsCj4gPiArCQkJCQkJICByZXNpemUtPm5ld19ucl9mdWxsX2Jsb2NrcywKPiA+ICsJCQkJCQkg IHJlc2l6ZS0+bmV3X25yX2VudHJpZXNfaW5fbGFzdF9ibG9jaywKPiA+ICsJCQkJCQkgIHJlc2l6 ZS0+dmFsdWUsICZyZXNpemUtPnJvb3QpOwo+IAo+IHJldHVybiBkaXJlY3RseSBoZXJlIGFuZCBk cm9wIHRoZSBlbHNlIChtYXliZSBpbnZlcnRpbmcgdGhlIGlmIHRlc3QpIGFuZAo+IHJlZHVjaW5n IHRoZSBpbmRlbnRhdGlvbj8KPiAKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCWlmICghcmVzaXplLT5v bGRfbnJfZW50cmllc19pbl9sYXN0X2Jsb2NrKSB7Cj4gPiArCQkJciA9IGluc2VydF9wYXJ0aWFs X2FibG9jayhyZXNpemUtPmluZm8sIHJlc2l6ZS0+YmxvY2tfc2l6ZSwKPiAKPiBSZWR1bmRhbnQg e30KPiAKPiA+ICsJCQkJCQkgIHJlc2l6ZS0+bmV3X25yX2Z1bGxfYmxvY2tzLAo+ID4gKwkJCQkJ CSAgcmVzaXplLT5uZXdfbnJfZW50cmllc19pbl9sYXN0X2Jsb2NrLAo+ID4gKwkJCQkJCSAgcmVz aXplLT52YWx1ZSwgJnJlc2l6ZS0+cm9vdCk7Cj4gPiArCQl9IGVsc2Ugewo+IAo+IC4uLgo+IAo+ ID4gKwlyID0gZG1fdG1fcmVmKGluZm8tPmJ0cmVlX2luZm8udG0sIGIsICZyZWZfY291bnQpOwo+ ID4gKwlpZiAocikgewo+ID4gKwkJRE1FUlJfTElNSVQoImNvdWxkbid0IGdldCByZWZlcmVuY2Ug Y291bnQiKTsKPiA+ICsJCXJldHVybjsKPiA+ICsJfQo+ID4gKwo+ID4gKwlpZiAocmVmX2NvdW50 ID09IDEpIHsKPiA+ICsJCS8qCj4gPiArCQkgKiBXZSdyZSBhYm91dCB0byBkcm9wIHRoZSBsYXN0 IHJlZmVyZW5jZSB0byB0aGlzIGFibG9jay4KPiA+ICsJCSAqIFNvIHdlIG5lZWQgdG8gZGVjcmVt ZW50IHRoZSByZWYgY291bnQgb2YgdGhlIGNvbnRlbnRzLgo+ID4gKwkJICovCj4gPiArCQlyID0g Z2V0X2FibG9jayhpbmZvLCBiLCAmYmxvY2ssICZhYik7Cj4gPiArCQlpZiAocikgewo+ID4gKwkJ CURNRVJSX0xJTUlUKCJjb3VsZG4ndCBnZXQgYXJyYXkgYmxvY2siKTsKPiA+ICsJCQlyZXR1cm47 Cj4gPiArCQl9Cj4gCj4gQ2FuIHdlIGFkZCBtb3JlIGNvbnRleHQgdG8gdGhlc2UgZXJyb3IgbWVz c2FnZXMgLSBlLmcuIHRoZSBibG9jayBudW1iZXI/Cj4gCj4gQWxhc2RhaXIKPiAKCi0tCmRtLWRl dmVsIG1haWxpbmcgbGlzdApkbS1kZXZlbEByZWRoYXQuY29tCmh0dHBzOi8vd3d3LnJlZGhhdC5j b20vbWFpbG1hbi9saXN0aW5mby9kbS1kZXZlbA==