From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: with ECARTIS (v1.0.0; list xfs); Wed, 27 Jun 2007 03:15:36 -0700 (PDT) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.171]) by oss.sgi.com (8.12.10/8.12.10/SuSE Linux 0.7) with ESMTP id l5RAFTtL021569 for ; Wed, 27 Jun 2007 03:15:31 -0700 Received: by ug-out-1314.google.com with SMTP id z36so330750uge for ; Wed, 27 Jun 2007 03:15:29 -0700 (PDT) Subject: [PATCH] Implement ioctl to mark AGs as "don't use/use" From: Ruben Porras Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-4q4KvNaYwVtWs6R7erN9" Date: Wed, 27 Jun 2007 12:15:25 +0200 Message-Id: <1182939325.5313.12.camel@localhost> Mime-Version: 1.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com List-Id: xfs To: xfs@oss.sgi.com --=-4q4KvNaYwVtWs6R7erN9 Content-Type: multipart/mixed; boundary="=-mxxJ5eF2pIjoqGZ+jADI" --=-mxxJ5eF2pIjoqGZ+jADI Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable The patch has the following parts: - Necessary changes to xfs_ag.h - two new ioctls - Changes to the allocation functions to avoid using marked AGs - Extension to xfs_alloc_log_agf This should implement the second step on the requirement list to shrink an xfs filesystem. Comment are welcome. --=20 Rub=C3=A9n Porras LinWorks GmbH --=-mxxJ5eF2pIjoqGZ+jADI Content-Disposition: attachment; filename=patch_markags.diff Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name=patch_markags.diff; charset=utf-8 SW5kZXg6IHhmcy94ZnNfYWcuaA0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K UkNTIGZpbGU6IC9jdnMvbGludXgtMi42LXhmcy9mcy94ZnMveGZzX2FnLmgs dg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjU5DQpkaWZmIC11IC1yMS41OSB4 ZnNfYWcuaA0KLS0tIHhmcy94ZnNfYWcuaAkyMiBNYXkgMjAwNyAxNTo1MDo0 OCAtMDAwMAkxLjU5DQorKysgeGZzL3hmc19hZy5oCTI3IEp1biAyMDA3IDA5 OjA2OjM5IC0wMDAwDQpAQCAtNjksNiArNjksNyBAQA0KIAlfX2JlMzIJCWFn Zl9mcmVlYmxrczsJLyogdG90YWwgZnJlZSBibG9ja3MgKi8NCiAJX19iZTMy CQlhZ2ZfbG9uZ2VzdDsJLyogbG9uZ2VzdCBmcmVlIHNwYWNlICovDQogCV9f YmUzMgkJYWdmX2J0cmVlYmxrczsJLyogIyBvZiBibG9ja3MgaGVsZCBpbiBB R0YgYnRyZWVzICovDQorCV9fYmUzMgkJYWdmX2ZsYWdzOyAgICAgIC8qIHRo ZSBBR0YgaXMgYWxsb2NhdGFibGUgKi8NCiB9IHhmc19hZ2ZfdDsNCiANCiAj ZGVmaW5lCVhGU19BR0ZfTUFHSUNOVU0JMHgwMDAwMDAwMQ0KQEAgLTE5Niw4 ICsxOTcsMTcgQEANCiAJbG9ja190CQlwYWdiX2xvY2s7CS8qIGxvY2sgZm9y IHBhZ2JfbGlzdCAqLw0KICNlbmRpZg0KIAl4ZnNfcGVyYWdfYnVzeV90ICpw YWdiX2xpc3Q7CS8qIHVuc3RhYmxlIGJsb2NrcyAqLw0KKwlfX3UzMgkJIHBh Z2ZfZmxhZ3M7CS8qIHRoZSBBR0YgaXMgYWxsb2NhdGFibGUgKi8NCiB9IHhm c19wZXJhZ190Ow0KIA0KK3R5cGVkZWYgc3RydWN0IHhmc19pb2NfYWdmbGFn cw0KK3sNCisJeGZzX2FnbnVtYmVyX3QJYWc7DQorCV9fdTMyCQlmbGFnczsN Cit9IHhmc19pb2NfYWdmbGFnc190Ow0KKw0KKyNkZWZpbmUgWEZTX0FHRl9G TEFHU19BTExPQ19ERU5ZCSgxPDwwKQ0KKw0KICNkZWZpbmUJWEZTX0FHX01B WExFVkVMUyhtcCkJCSgobXApLT5tX2FnX21heGxldmVscykNCiAjZGVmaW5l CVhGU19NSU5fRlJFRUxJU1RfUkFXKGJsLGNsLG1wKQlcDQogCShNSU4oYmwg KyAxLCBYRlNfQUdfTUFYTEVWRUxTKG1wKSkgKyBNSU4oY2wgKyAxLCBYRlNf QUdfTUFYTEVWRUxTKG1wKSkpDQpJbmRleDogeGZzL3hmc19hbGxvYy5jDQo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2cy9saW51eC0y LjYteGZzL2ZzL3hmcy94ZnNfYWxsb2MuYyx2DQpyZXRyaWV2aW5nIHJldmlz aW9uIDEuMTg2DQpkaWZmIC11IC1yMS4xODYgeGZzX2FsbG9jLmMNCi0tLSB4 ZnMveGZzX2FsbG9jLmMJMjIgTWF5IDIwMDcgMTU6NTA6NDggLTAwMDAJMS4x ODYNCisrKyB4ZnMveGZzX2FsbG9jLmMJMjcgSnVuIDIwMDcgMDk6MDY6NDAg LTAwMDANCkBAIC01NDksNiArNTQ5LDcgQEANCiAJeGZzX2FsbG9jX2FyZ190 CSphcmdzKQkvKiBhcmd1bWVudCBzdHJ1Y3R1cmUgZm9yIGFsbG9jYXRpb24g Ki8NCiB7DQogCWludAkJZXJyb3I9MDsNCisJeGZzX3BlcmFnX3QJKnBhZzsN CiAjaWZkZWYgWEZTX0FMTE9DX1RSQUNFDQogCXN0YXRpYyBjaGFyCWZuYW1l W10gPSAieGZzX2FsbG9jX2FnX3ZleHRlbnQiOw0KICNlbmRpZg0KQEAgLTU1 OSw2ICs1NjAsMTUgQEANCiAJQVNTRVJUKGFyZ3MtPm1vZCA8IGFyZ3MtPnBy b2QpOw0KIAlBU1NFUlQoYXJncy0+YWxpZ25tZW50ID4gMCk7DQogCS8qDQor CSAqIFJldHVybiBhbiBlcnJvciBpZiB0aGUgYS5nLiBzaG91bGQgbm90IGJl IGFsbG9jYXRlZC4NCisJICogVGhpcyBoYXBwZW5zIG5vcm1hbGx5IGR1cmlu ZyBhIHNocmluayBvcGVyYXRpb24uDQorCSAqLw0KKyAgICAgICAgcGFnID0g KGFyZ3MtPnBhZyk7DQorICAgICAgICBpZiAodW5saWtlbHkocGFnLT5wYWdm X2ZsYWdzICYgWEZTX0FHRl9GTEFHU19BTExPQ19ERU5ZKSkgew0KKwkJYXJn cy0+YWdibm8gPSBOVUxMQUdCTE9DSzsNCisJCXJldHVybiAwOw0KKwl9DQor CS8qDQogCSAqIEJyYW5jaCB0byBjb3JyZWN0IHJvdXRpbmUgYmFzZWQgb24g dGhlIHR5cGUuDQogCSAqLw0KIAlhcmdzLT53YXNmcm9tZmwgPSAwOw0KQEAg LTIwODUsNiArMjA5NSw3IEBADQogCQlvZmZzZXRvZih4ZnNfYWdmX3QsIGFn Zl9mcmVlYmxrcyksDQogCQlvZmZzZXRvZih4ZnNfYWdmX3QsIGFnZl9sb25n ZXN0KSwNCiAJCW9mZnNldG9mKHhmc19hZ2ZfdCwgYWdmX2J0cmVlYmxrcyks DQorCQlvZmZzZXRvZih4ZnNfYWdmX3QsIGFnZl9mbGFncyksDQogCQlzaXpl b2YoeGZzX2FnZl90KQ0KIAl9Ow0KIA0KSW5kZXg6IHhmcy94ZnNfZnMuaA0K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMvbGludXgt Mi42LXhmcy9mcy94ZnMveGZzX2ZzLmgsdg0KcmV0cmlldmluZyByZXZpc2lv biAxLjMzDQpkaWZmIC11IC1yMS4zMyB4ZnNfZnMuaA0KLS0tIHhmcy94ZnNf ZnMuaAkyMiBNYXkgMjAwNyAxNTo1MDo0OCAtMDAwMAkxLjMzDQorKysgeGZz L3hmc19mcy5oCTI3IEp1biAyMDA3IDA5OjA2OjQwIC0wMDAwDQpAQCAtNDc2 LDIyICs0NzYsMjQgQEANCiAjZGVmaW5lIFhGU19JT0NfT1BFTl9CWV9IQU5E TEUJICAgICBfSU9XUignWCcsIDEwNywgc3RydWN0IHhmc19mc29wX2hhbmRs ZXJlcSkNCiAjZGVmaW5lIFhGU19JT0NfUkVBRExJTktfQllfSEFORExFICAg X0lPV1IoJ1gnLCAxMDgsIHN0cnVjdCB4ZnNfZnNvcF9oYW5kbGVyZXEpDQog I2RlZmluZSBYRlNfSU9DX1NXQVBFWFQJCSAgICAgX0lPV1IoJ1gnLCAxMDks IHN0cnVjdCB4ZnNfc3dhcGV4dCkNCi0jZGVmaW5lIFhGU19JT0NfRlNHUk9X RlNEQVRBCSAgICAgX0lPVyAoJ1gnLCAxMTAsIHN0cnVjdCB4ZnNfZ3Jvd2Zz X2RhdGEpDQotI2RlZmluZSBYRlNfSU9DX0ZTR1JPV0ZTTE9HCSAgICAgX0lP VyAoJ1gnLCAxMTEsIHN0cnVjdCB4ZnNfZ3Jvd2ZzX2xvZykNCi0jZGVmaW5l IFhGU19JT0NfRlNHUk9XRlNSVAkgICAgIF9JT1cgKCdYJywgMTEyLCBzdHJ1 Y3QgeGZzX2dyb3dmc19ydCkNCi0jZGVmaW5lIFhGU19JT0NfRlNDT1VOVFMJ ICAgICBfSU9SICgnWCcsIDExMywgc3RydWN0IHhmc19mc29wX2NvdW50cykN Ci0jZGVmaW5lIFhGU19JT0NfU0VUX1JFU0JMS1MJICAgICBfSU9XUignWCcs IDExNCwgc3RydWN0IHhmc19mc29wX3Jlc2Jsa3MpDQotI2RlZmluZSBYRlNf SU9DX0dFVF9SRVNCTEtTCSAgICAgX0lPUiAoJ1gnLCAxMTUsIHN0cnVjdCB4 ZnNfZnNvcF9yZXNibGtzKQ0KLSNkZWZpbmUgWEZTX0lPQ19FUlJPUl9JTkpF Q1RJT04JICAgICBfSU9XICgnWCcsIDExNiwgc3RydWN0IHhmc19lcnJvcl9p bmplY3Rpb24pDQotI2RlZmluZSBYRlNfSU9DX0VSUk9SX0NMRUFSQUxMCSAg ICAgX0lPVyAoJ1gnLCAxMTcsIHN0cnVjdCB4ZnNfZXJyb3JfaW5qZWN0aW9u KQ0KLS8qCVhGU19JT0NfQVRUUkNUTF9CWV9IQU5ETEUgLS0gZGVwcmVjYXRl ZCAxMTgJICovDQotI2RlZmluZSBYRlNfSU9DX0ZSRUVaRQkJICAgICBfSU9X UignWCcsIDExOSwgaW50KQ0KLSNkZWZpbmUgWEZTX0lPQ19USEFXCQkgICAg IF9JT1dSKCdYJywgMTIwLCBpbnQpDQotI2RlZmluZSBYRlNfSU9DX0ZTU0VU RE1fQllfSEFORExFICAgIF9JT1cgKCdYJywgMTIxLCBzdHJ1Y3QgeGZzX2Zz b3Bfc2V0ZG1faGFuZGxlcmVxKQ0KLSNkZWZpbmUgWEZTX0lPQ19BVFRSTElT VF9CWV9IQU5ETEUgICBfSU9XICgnWCcsIDEyMiwgc3RydWN0IHhmc19mc29w X2F0dHJsaXN0X2hhbmRsZXJlcSkNCi0jZGVmaW5lIFhGU19JT0NfQVRUUk1V TFRJX0JZX0hBTkRMRSAgX0lPVyAoJ1gnLCAxMjMsIHN0cnVjdCB4ZnNfZnNv cF9hdHRybXVsdGlfaGFuZGxlcmVxKQ0KLSNkZWZpbmUgWEZTX0lPQ19GU0dF T01FVFJZCSAgICAgX0lPUiAoJ1gnLCAxMjQsIHN0cnVjdCB4ZnNfZnNvcF9n ZW9tKQ0KLSNkZWZpbmUgWEZTX0lPQ19HT0lOR0RPV04JICAgICBfSU9SICgn WCcsIDEyNSwgX191aW50MzJfdCkNCisjZGVmaW5lIFhGU19JT0NfR0VUX0FH Rl9GTEFHUyAgICAgICBfSU9XICgnWCcsIDExMCwgc3RydWN0IHhmc19pb2Nf YWdmbGFncykNCisjZGVmaW5lIFhGU19JT0NfU0VUX0FHRl9GTEFHUyAgICAg ICBfSU9XICgnWCcsIDExMSwgc3RydWN0IHhmc19pb2NfYWdmbGFncykNCisj ZGVmaW5lIFhGU19JT0NfRlNHUk9XRlNEQVRBCSAgICAgX0lPVyAoJ1gnLCAx MTEsIHN0cnVjdCB4ZnNfZ3Jvd2ZzX2RhdGEpDQorI2RlZmluZSBYRlNfSU9D X0ZTR1JPV0ZTTE9HCSAgICAgX0lPVyAoJ1gnLCAxMTIsIHN0cnVjdCB4ZnNf Z3Jvd2ZzX2xvZykNCisjZGVmaW5lIFhGU19JT0NfRlNHUk9XRlNSVAkgICAg IF9JT1cgKCdYJywgMTEzLCBzdHJ1Y3QgeGZzX2dyb3dmc19ydCkNCisjZGVm aW5lIFhGU19JT0NfRlNDT1VOVFMJICAgICBfSU9SICgnWCcsIDExNCwgc3Ry dWN0IHhmc19mc29wX2NvdW50cykNCisjZGVmaW5lIFhGU19JT0NfU0VUX1JF U0JMS1MJICAgICBfSU9XUignWCcsIDExNSwgc3RydWN0IHhmc19mc29wX3Jl c2Jsa3MpDQorI2RlZmluZSBYRlNfSU9DX0dFVF9SRVNCTEtTCSAgICAgX0lP UiAoJ1gnLCAxMTYsIHN0cnVjdCB4ZnNfZnNvcF9yZXNibGtzKQ0KKyNkZWZp bmUgWEZTX0lPQ19FUlJPUl9JTkpFQ1RJT04JICAgICBfSU9XICgnWCcsIDEx Nywgc3RydWN0IHhmc19lcnJvcl9pbmplY3Rpb24pDQorI2RlZmluZSBYRlNf SU9DX0VSUk9SX0NMRUFSQUxMCSAgICAgX0lPVyAoJ1gnLCAxMTgsIHN0cnVj dCB4ZnNfZXJyb3JfaW5qZWN0aW9uKQ0KKy8qCVhGU19JT0NfQVRUUkNUTF9C WV9IQU5ETEUgLS0gZGVwcmVjYXRlZCAxMTkJICovDQorI2RlZmluZSBYRlNf SU9DX0ZSRUVaRQkJICAgICBfSU9XUignWCcsIDEyMCwgaW50KQ0KKyNkZWZp bmUgWEZTX0lPQ19USEFXCQkgICAgIF9JT1dSKCdYJywgMTIxLCBpbnQpDQor I2RlZmluZSBYRlNfSU9DX0ZTU0VURE1fQllfSEFORExFICAgIF9JT1cgKCdY JywgMTIyLCBzdHJ1Y3QgeGZzX2Zzb3Bfc2V0ZG1faGFuZGxlcmVxKQ0KKyNk ZWZpbmUgWEZTX0lPQ19BVFRSTElTVF9CWV9IQU5ETEUgICBfSU9XICgnWCcs IDEyMywgc3RydWN0IHhmc19mc29wX2F0dHJsaXN0X2hhbmRsZXJlcSkNCisj ZGVmaW5lIFhGU19JT0NfQVRUUk1VTFRJX0JZX0hBTkRMRSAgX0lPVyAoJ1gn LCAxMjQsIHN0cnVjdCB4ZnNfZnNvcF9hdHRybXVsdGlfaGFuZGxlcmVxKQ0K KyNkZWZpbmUgWEZTX0lPQ19GU0dFT01FVFJZCSAgICAgX0lPUiAoJ1gnLCAx MjUsIHN0cnVjdCB4ZnNfZnNvcF9nZW9tKQ0KKyNkZWZpbmUgWEZTX0lPQ19H T0lOR0RPV04JICAgICBfSU9SICgnWCcsIDEyNiwgX191aW50MzJfdCkNCiAv KglYRlNfSU9DX0dFVEZTVVVJRCAtLS0tLS0tLS0tIGRlcHJlY2F0ZWQgMTQw CSAqLw0KIA0KIA0KSW5kZXg6IHhmcy94ZnNfZnNvcHMuYw0KPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMvbGludXgtMi42LXhmcy9m cy94ZnMveGZzX2Zzb3BzLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjEy Ng0KZGlmZiAtdSAtcjEuMTI2IHhmc19mc29wcy5jDQotLS0geGZzL3hmc19m c29wcy5jCTggSnVuIDIwMDcgMTY6MDM6NTkgLTAwMDAJMS4xMjYNCisrKyB4 ZnMveGZzX2Zzb3BzLmMJMjcgSnVuIDIwMDcgMDk6MDY6NDAgLTAwMDANCkBA IC02NDksMyArNjQ5LDgwIEBADQogDQogCXJldHVybiAwOw0KIH0NCisNCitT VEFUSUMgdm9pZA0KK3hmc19hZ19zZXRfZmxhZ3NfcHJpdmF0ZSgNCisJeGZz X3RyYW5zX3QJKnRwLA0KKwl4ZnNfYnVmX3QJKmFnYnAsCS8qIGJ1ZmZlciBm b3IgYS5nLiBmcmVlbGlzdCBoZWFkZXIgKi8NCisJeGZzX3BlcmFnX3QJKnBh ZywNCisJX191MzIJCWZsYWdzKQ0KK3sNCisJeGZzX2FnZl90CSphZ2Y7CS8q IGEuZy4gZnJlZXNwYWNlIHN0cnVjdHVyZSAqLw0KKw0KKwlhZ2YgPSBYRlNf QlVGX1RPX0FHRihhZ2JwKTsNCisJcGFnLT5wYWdmX2ZsYWdzIHw9IGZsYWdz Ow0KKwlhZ2YtPmFnZl9mbGFncyA9IGNwdV90b19iZTMyKHBhZy0+cGFnZl9m bGFncyk7DQorDQorCXhmc19hbGxvY19sb2dfYWdmKHRwLCBhZ2JwLCBYRlNf VFJBTlNfQUdGX0ZMQUdTKTsNCit9DQorDQorX191MzINCit4ZnNfYWdfZ2V0 X2ZsYWdzX3ByaXZhdGUoDQorCXhmc19wZXJhZ190CSpwYWcpDQorew0KKwly ZXR1cm4gcGFnLT5wYWdmX2ZsYWdzOw0KK30NCisNCitpbnQNCit4ZnNfYWdf c2V0X2ZsYWdzKA0KKwl4ZnNfbW91bnRfdAkJKm1wLA0KKwl4ZnNfaW9jX2Fn ZmxhZ3NfdCAJKmlvY19mbGFncykNCit7DQorCXhmc19hZ251bWJlcl90ICBh Z25vOw0KKwl4ZnNfcGVyYWdfdAkqcGFnOw0KKwl4ZnNfYnVmX3QJKmJwOw0K KwlpbnQJCWVycm9yOw0KKwl4ZnNfdHJhbnNfdAkqdHA7DQorDQorCWFnbm8g PSBpb2NfZmxhZ3MtPmFnOw0KKwlpZiAoYWdubyA+PSBtcC0+bV9zYi5zYl9h Z2NvdW50KQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCXRwID0geGZzX3Ry YW5zX2FsbG9jKG1wLCBYRlNfVFJBTlNfQUdGX0ZMQUdTKTsNCisJZXJyb3Ig PSB4ZnNfdHJhbnNfcmVzZXJ2ZSh0cCwgMCwgbXAtPm1fc2Iuc2Jfc2VjdHNp emUgKyAxMjgsIDAsIDAsDQorCQkJCQlYRlNfREVGQVVMVF9MT0dfQ09VTlQp Ow0KKwlpZiAoZXJyb3IpIHsNCisJCXhmc190cmFuc19jYW5jZWwodHAsIDAp Ow0KKwkJcmV0dXJuIGVycm9yOw0KKwl9DQorCWVycm9yID0geGZzX2FsbG9j X3JlYWRfYWdmKG1wLCB0cCwgYWdubywgMCwgJmJwKTsNCisJaWYgKGVycm9y KQ0KKwkJcmV0dXJuIGVycm9yOw0KKw0KKwlwYWcgPSAmbXAtPm1fcGVyYWdb YWdub107DQorCXhmc19hZ19zZXRfZmxhZ3NfcHJpdmF0ZSh0cCwgYnAsIHBh ZywgaW9jX2ZsYWdzLT5mbGFncyk7DQorDQorCXhmc190cmFuc19zZXRfc3lu Yyh0cCk7DQorCXhmc190cmFuc19jb21taXQodHAsIDApOw0KKw0KKwlyZXR1 cm4gMDsNCisNCit9DQorDQoraW50DQoreGZzX2FnX2dldF9mbGFncygNCisJ eGZzX21vdW50X3QJCSptcCwNCisJeGZzX2lvY19hZ2ZsYWdzX3QgCSppb2Nf ZmxhZ3MsDQorCV9fdTMyCQkJKmZsYWdzKQ0KK3sNCisJeGZzX2FnbnVtYmVy X3QJYWdubzsNCisJeGZzX3BlcmFnX3QJKnBhZzsNCisNCisJYWdubyA9IGlv Y19mbGFncy0+YWc7DQorCWlmIChhZ25vID49IG1wLT5tX3NiLnNiX2FnY291 bnQpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJcGFnID0gJm1wLT5tX3Bl cmFnW2Fnbm9dOw0KKwkqZmxhZ3MgPSB4ZnNfYWdfZ2V0X2ZsYWdzX3ByaXZh dGUocGFnKTsNCisJcmV0dXJuIDA7DQorfQ0KSW5kZXg6IHhmcy94ZnNfZnNv cHMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMv bGludXgtMi42LXhmcy9mcy94ZnMveGZzX2Zzb3BzLmgsdg0KcmV0cmlldmlu ZyByZXZpc2lvbiAxLjI5DQpkaWZmIC11IC1yMS4yOSB4ZnNfZnNvcHMuaA0K LS0tIHhmcy94ZnNfZnNvcHMuaAkyMSBOb3YgMjAwNSAxNDo0MjozNiAtMDAw MAkxLjI5DQorKysgeGZzL3hmc19mc29wcy5oCTI3IEp1biAyMDA3IDA5OjA2 OjQwIC0wMDAwDQpAQCAtMjcsNCArMjcsNyBAQA0KIGV4dGVybiBpbnQgeGZz X2ZzX2dvaW5nZG93bih4ZnNfbW91bnRfdCAqbXAsIF9fdWludDMyX3QgaW5m bGFncyk7DQogZXh0ZXJuIHZvaWQgeGZzX2ZzX2xvZ19kdW1teSh4ZnNfbW91 bnRfdCAqbXApOw0KIA0KK2V4dGVybiBpbnQgeGZzX2FnX3NldF9mbGFncyh4 ZnNfbW91bnRfdCAqbXAsIHhmc19pb2NfYWdmbGFnc190ICppb2NfZmxhZ3Mp Ow0KK2V4dGVybiBpbnQgeGZzX2FnX2dldF9mbGFncyh4ZnNfbW91bnRfdCAq bXAsIHhmc19pb2NfYWdmbGFnc190ICppb2NfZmxhZ3MsIF9fdTMyICpmbGFn cyk7DQorDQogI2VuZGlmCS8qIF9fWEZTX0ZTT1BTX0hfXyAqLw0KSW5kZXg6 IHhmcy94ZnNfdHJhbnMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT IGZpbGU6IC9jdnMvbGludXgtMi42LXhmcy9mcy94ZnMveGZzX3RyYW5zLmgs dg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjE0NQ0KZGlmZiAtdSAtcjEuMTQ1 IHhmc190cmFucy5oDQotLS0geGZzL3hmc190cmFucy5oCTIyIE1heSAyMDA3 IDE1OjUwOjQ4IC0wMDAwCTEuMTQ1DQorKysgeGZzL3hmc190cmFucy5oCTI3 IEp1biAyMDA3IDA5OjA2OjQxIC0wMDAwDQpAQCAtNDE4LDYgKzQxOCwxMCBA QA0KICNkZWZpbmUJWEZTX1RSQU5TX1NCX1JFWFRFTlRTCQkweDAwMDAxMDAw DQogI2RlZmluZQlYRlNfVFJBTlNfU0JfUkVYVFNMT0cJCTB4MDAwMDIwMDAN CiANCisvKg0KKyAqIFZhbHVlIGZvciB4ZnNfdHJhbnNfbW9kX2FnZg0KKyAq Lw0KKyNkZWZpbmUgWEZTX1RSQU5TX0FHRl9GTEFHUyAgICAgICAgICAgICAw eDAwMDA0MDAwDQogDQogLyoNCiAgKiBWYXJpb3VzIGxvZyByZXNlcnZhdGlv biB2YWx1ZXMuDQpJbmRleDogeGZzL2xpbnV4LTIuNi94ZnNfaW9jdGwuYw0K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMvbGludXgt Mi42LXhmcy9mcy94ZnMvbGludXgtMi42L3hmc19pb2N0bC5jLHYNCnJldHJp ZXZpbmcgcmV2aXNpb24gMS4xNDQNCmRpZmYgLXUgLXIxLjE0NCB4ZnNfaW9j dGwuYw0KLS0tIHhmcy9saW51eC0yLjYveGZzX2lvY3RsLmMJNyBGZWIgMjAw NyAwMjo1MDoxMyAtMDAwMAkxLjE0NA0KKysrIHhmcy9saW51eC0yLjYveGZz X2lvY3RsLmMJMjcgSnVuIDIwMDcgMDk6MDY6NDEgLTAwMDANCkBAIC04NjAs NiArODYwLDM4IEBADQogCQlyZXR1cm4gMDsNCiAJfQ0KIA0KKwljYXNlIFhG U19JT0NfR0VUX0FHRl9GTEFHUzogew0KKwkJeGZzX2lvY19hZ2ZsYWdzX3Qg aW47DQorICAgICAgICAgICAgICAgX191MzIgb3V0Ow0KKw0KKwkJaWYgKCFj YXBhYmxlKENBUF9TWVNfQURNSU4pKQ0KKwkJCXJldHVybiAtRVBFUk07DQor DQorCQlpZiAoY29weV9mcm9tX3VzZXIoJmluLCBhcmcsIHNpemVvZihpbikp KQ0KKwkJCXJldHVybiAtWEZTX0VSUk9SKEVGQVVMVCk7DQorDQorCQllcnJv ciA9IHhmc19hZ19nZXRfZmxhZ3MobXAsICZpbiwgJm91dCk7DQorCQlpZiAo ZXJyb3IpDQorCQkJcmV0dXJuIC1lcnJvcjsNCisNCisJCWlmIChjb3B5X3Rv X3VzZXIoYXJnLCAmb3V0LCBzaXplb2Yob3V0KSkpDQorCQkJcmV0dXJuIC1Y RlNfRVJST1IoRUZBVUxUKTsNCisJCXJldHVybiAwOw0KKwl9DQorDQorCWNh c2UgWEZTX0lPQ19TRVRfQUdGX0ZMQUdTOiB7DQorCQl4ZnNfaW9jX2FnZmxh Z3NfdCBpbjsNCisNCisJCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkN CisJCQlyZXR1cm4gLUVQRVJNOw0KKw0KKwkJaWYgKGNvcHlfZnJvbV91c2Vy KCZpbiwgYXJnLCBzaXplb2YoaW4pKSkNCisJCQlyZXR1cm4gLVhGU19FUlJP UihFRkFVTFQpOw0KKw0KKwkJZXJyb3IgPSB4ZnNfYWdfc2V0X2ZsYWdzKG1w LCAmaW4pOw0KKwkJcmV0dXJuIC1lcnJvcjsNCisJfQ0KKw0KIAljYXNlIFhG U19JT0NfRlNHUk9XRlNEQVRBOiB7DQogCQl4ZnNfZ3Jvd2ZzX2RhdGFfdCBp bjsNCiANCg== --=-mxxJ5eF2pIjoqGZ+jADI-- --=-4q4KvNaYwVtWs6R7erN9 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Dies ist ein digital signierter Nachrichtenteil -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQBGgji7YubrKblAx+oRArmaAJ9qzq12QmJrkbV6oqQLJL1gAlMOvACdExD0 ov5JPuHWb9UA30K+ATCa1WM= =f/Fq -----END PGP SIGNATURE----- --=-4q4KvNaYwVtWs6R7erN9--