Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vvcJq-00ARgZ-2m for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Feb 2026 14:26:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vvcJp-00DJaO-2J for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Feb 2026 14:26:21 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vvcJp-00DJaF-07 for pgsql-hackers@lists.postgresql.org; Thu, 26 Feb 2026 14:26:21 +0000 Received: from mail-qt1-x836.google.com ([2607:f8b0:4864:20::836]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vvcJl-00000001JMZ-3bOn for pgsql-hackers@lists.postgresql.org; Thu, 26 Feb 2026 14:26:20 +0000 Received: by mail-qt1-x836.google.com with SMTP id d75a77b69052e-5032ee7bf6fso1140901cf.1 for ; Thu, 26 Feb 2026 06:26:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772115978; cv=none; d=google.com; s=arc-20240605; b=IGsWdkbOodM5FEP6jxo/7ttWP7J8QavCdBh+VwhodlskieO4T6cw+ykiTsGBC9QXtT yQOB//NKHxS91olTTrdbpb6KPqVCTsBBEru59ffPySoakdk2RrFB3HM//DZVabLAiId8 uJd+DK6KCyFs9nbtjHaVXvk5JfP2DxXed9rXDm8u5Gq4uwMD4HNxKW7sBxlwtT5xIQbx qIdUW60G9r8SU9k/WwxJ77wRcejLLSxL1jiu+ENzWpvGJ5QtrLgpdP6yo9PWz1hJrfkz pBVeg8DVmOc7Op6OQgb8+3VwjZVCXRTz08Hx3OB65Pc6AqFlP9PfRH1LoYfb5A4rEj3R X8fQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=ibDbZYCEfntdOD5v2koPIt+GXRZN/EWv+I1tHUevkmQ=; fh=oWKbGXenJ0W3UaTE5+JHx7ufYGIICxbxa2jY+IM9Itg=; b=Bx+WRttw2jfFxiJi4yZSPvBkAjXEAmPl3Xpzlvk76wpnQyH137sekYvNuTCow59AeK giDgsSMCu/9Ys2o2qikxeDpQPtMGeH52gT+jW6bvQrJrJB8ehNo7r23qOoKEe2eZFLLt 49tyekrS54XaTgrkswW2dueqbIC7z4/ACd8z1OLTZsrQ4/WttQ10FrX9ye1eBc0LJSpe g7xhtQyquAdxyz25a83AfSTIGWHnJ1y0zkT1SldW012mAFuzO+3P0mb2Ta/tmuU6ZTeB X8hUsI5OYOAvlThBrPmuwxKo/elh48a8minGNVGQp15tHmXw7c6DC/CnuvMD+7ECAe/v jajQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772115978; x=1772720778; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=ibDbZYCEfntdOD5v2koPIt+GXRZN/EWv+I1tHUevkmQ=; b=kUmRHbEOEpujyb8YSvBsz5+oPTM+50xQnUqzca4W6C2doKhznq+ERqFaVCAc99nzqi 5CC0BhlauThpn9KbnNBFYIZJOAku3dFT0Haqmh+pRoaBPBxkn+8OvHemsRQa8YuI6F2f 1Y4pUmOeRsQn9Zi/JdUR5M5xxtZsDmoK0y4pGa/JUOpwb9s1FlNKN+UcuVaFayxmBGst KyYSkSUqDC1GYCIatQrRTdr39AxMqzDXBGPyMJzU5i+0O6nFj3gcR5dNWCpQUMsgccpj BMu9kOEzMwq9CfD96HBKIG8/lP9TXSeDertJNOhKIgqOkIH5Fcn48DzB/Q0VvZ+xsKhu Yz3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772115978; x=1772720778; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ibDbZYCEfntdOD5v2koPIt+GXRZN/EWv+I1tHUevkmQ=; b=QBkITDIHo5ULj5PSB94l/xgD5vQa4IuBBwIj45efbaytTKIVWNamrkqMNHHcW3H5Mi rlF4rtGBQHFtwwGTfQKPk8Vt/W06J1bMrcoru0amlB6OVOxdEBt8Ho0iemk8VXQBolHu kcDexOYI0HfMKAvfGvKaz7MBZPDXgDQkgj+zfHfgCscGg17PSW9wUGdTMCzTQCC9oFIx UeX7pHpzyJTZmhWri+9Yo42/U/6PCnhjHblT5ujxzuFL1Sth9VhtPguyw++3K3CLuKpT z+aNjbiDqNB4dJQy3zCs/i/s10xihtgq6JLQBG+q0ExiPHvtC1pzuNctoe1eixOGC4TD /tvQ== X-Gm-Message-State: AOJu0YwN/h6pNnT04WR6O8T9mxpaLrB4/fWq3dN3YTNORs0zLHBV3zjp s0j8cq4YRDubgoeKXvoPIBSsvaXolNChQ1DEsQCGkdKJVZQxUvan24XTrortYOJYP+T49C/rO0n Y3zo6skOrp+vQtZJfNI4cqrN38o+znyWjxoOc X-Gm-Gg: ATEYQzzadb5uncC7pRFLIg2xDNKRR/4ODKcSRwi4i4GDCKbPTabggUYLfRVYfFpH967 fbANAaq0qLB+raXHrETlSK2GEDn9GdqSSPnEpgpFB989mV2wjiam+zw6wcb7c3KvpD6RKEWHGQN 9QjW6eq8Z24MTK3pgB0D74OZxyeqpWKuaw3XOs22nGNEIjVKgQpOQXeu93ut0zX1sF1cDXTAHq3 +EV6uq3sTTYPx7dMtLqiIrRI83LIlJkohfqhwZfEV8EWi3G/lgZ7qE7gsZZ5Y2G55BWnTOYqY0D Riddl5Y= X-Received: by 2002:ac8:7f85:0:b0:4e6:eaff:3a4b with SMTP id d75a77b69052e-5070bc0dcaemr223280571cf.4.1772115977952; Thu, 26 Feb 2026 06:26:17 -0800 (PST) MIME-Version: 1.0 From: Maxim Orlov Date: Thu, 26 Feb 2026 17:26:05 +0300 X-Gm-Features: AaiRm53o8mbEy53fNeCCvi8-ii2rHolzXI2pzO8h7SaOg0eP-AorYmLfcTHYQOo Message-ID: Subject: Rework SLRU I/O errors handle To: Postgres hackers Content-Type: multipart/mixed; boundary="0000000000005e306f064bbae7f1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005e306f064bbae7f1 Content-Type: multipart/alternative; boundary="0000000000005e306e064bbae7ef" --0000000000005e306e064bbae7ef Content-Type: text/plain; charset="UTF-8" Hi! Beginning of the discussion is here [0]. Historically, the SLRU module was designed to handle 32-bit transactions. However, it is now utilised for handling a variety of object types, like TransactionId, MultixactId, MultiXactOffset, QueuePosition, and so on. But the IO error reporting system is still designed to support 32-bit XIDs exclusively. The proposed patchset allows us to define a "custom" callback to improve error messages. The first two commits add a callback and test case. The subsequent ones improve I/O error messages. The last one adds the XID epoch to the error message. It's purely optional, but I think it would be useful. [0] https://www.postgresql.org/message-id/CACG%3Dezbwy1zargXDNPeYXxZwRW3jXu_aD%3DrcG-7dc4fw7Y9Ojw%40mail.gmail.com -- Best regards, Maxim Orlov. --0000000000005e306e064bbae7ef Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi!

Beginn= ing of the discussion is here [0].

Historically, t= he SLRU module was designed to handle 32-bit
transactions. However, it i= s now utilised for handling a variety of
object types, like TransactionI= d, MultixactId, MultiXactOffset,
QueuePosition, and so on. But the IO er= ror reporting system is still
designed to support 32-bit XIDs exclusivel= y.

The proposed patchset allows us to define a "custom" ca= llback to
improve error messages.

The first= two commits add a callback and test case. The subsequent ones
improve I= /O error messages. The last one adds the XID epoch to the error
message.= It's purely optional, but I think it would be useful.

--
Best regards,
=
Maxim Orlov.
--0000000000005e306e064bbae7ef-- --0000000000005e306f064bbae7f1 Content-Type: application/octet-stream; name="v3-0003-Use-custom-SLRU-IO-error-msg-for-an-asynchronous-.patch" Content-Disposition: attachment; filename="v3-0003-Use-custom-SLRU-IO-error-msg-for-an-asynchronous-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm3hxq8n2 RnJvbSA0NDMzNjcxZTBiMzM4NDEyMjE2ZDIxYWMyNTcyZjUxZmNiMDdhNGIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjUgRmViIDIwMjYgMTg6MDQ6MTMgKzAzMDAKU3ViamVjdDogW1BBVENIIHYzIDMvNV0g VXNlIGN1c3RvbSBTTFJVIElPIGVycm9yIG1zZyBmb3IgYW4gYXN5bmNocm9ub3VzCiBub3RpZmlj YXRpb24KCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyB8IDIwICsrKysrKysrKysr KysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvYXN5bmMuYwppbmRleCA4YWZkMTMxNWE5Yy4uMjU0ZmRjMzk4Y2UgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvYXN5bmMuYwpAQCAtNTY5LDYgKzU2OSw3IEBAIGJvb2wJCVRyYWNlX25vdGlmeSA9IGZh bHNlOwogaW50CQkJbWF4X25vdGlmeV9xdWV1ZV9wYWdlcyA9IDEwNDg1NzY7CiAKIC8qIGxvY2Fs IGZ1bmN0aW9uIHByb3RvdHlwZXMgKi8KK3N0YXRpYyBpbmxpbmUgaW50IGFzeW5jUXVldWVFcnJt c2dGb3JJb0Vycm9yKGNvbnN0IHZvaWQgKm9wYXF1ZV9kYXRhKTsKIHN0YXRpYyBpbmxpbmUgaW50 NjQgYXN5bmNRdWV1ZVBhZ2VEaWZmKGludDY0IHAsIGludDY0IHEpOwogc3RhdGljIGlubGluZSBi b29sIGFzeW5jUXVldWVQYWdlUHJlY2VkZXMoaW50NjQgcCwgaW50NjQgcSk7CiBzdGF0aWMgaW5s aW5lIHZvaWQgR2xvYmFsQ2hhbm5lbEtleUluaXQoR2xvYmFsQ2hhbm5lbEtleSAqa2V5LCBPaWQg ZGJvaWQsCkBAIC02MDksNiArNjEwLDE3IEBAIHN0YXRpYyB1aW50MzIgbm90aWZpY2F0aW9uX2hh c2goY29uc3Qgdm9pZCAqa2V5LCBTaXplIGtleXNpemUpOwogc3RhdGljIGludAlub3RpZmljYXRp b25fbWF0Y2goY29uc3Qgdm9pZCAqa2V5MSwgY29uc3Qgdm9pZCAqa2V5MiwgU2l6ZSBrZXlzaXpl KTsKIHN0YXRpYyB2b2lkIENsZWFyUGVuZGluZ0FjdGlvbnNBbmROb3RpZmllcyh2b2lkKTsKIAor c3RhdGljIGlubGluZSBpbnQKK2FzeW5jUXVldWVFcnJtc2dGb3JJb0Vycm9yKGNvbnN0IHZvaWQg Km9wYXF1ZV9kYXRhKQoreworCWNvbnN0IFF1ZXVlUG9zaXRpb24gKnBvc2l0aW9uID0gb3BhcXVl X2RhdGE7CisKKwlBc3NlcnQocG9zaXRpb24gIT0gTlVMTCk7CisKKwlyZXR1cm4gZXJybXNnKCJj b3VsZCBub3QgYWNjZXNzIHN0YXR1cyBvZiBhc3luYyBxdWV1ZSBwb3NpdGlvbiAocGFnZT0lIiBQ UklkNjQiLCBvZmZzZXQ9JWQpIiwKKwkJCQkgIHBvc2l0aW9uLT5wYWdlLCBwb3NpdGlvbi0+b2Zm c2V0KTsKK30KKwogLyoKICAqIENvbXB1dGUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gcXVl dWUgcGFnZSBudW1iZXJzLgogICogUHJldmlvdXNseSB0aGlzIGZ1bmN0aW9uIGFjY291bnRlZCBm b3IgYSB3cmFwYXJvdW5kLgpAQCAtODI5LDcgKzg0MSw3IEBAIEFzeW5jU2htZW1Jbml0KHZvaWQp CiAJICogbmFtZXMgYXJlIHVzZWQgaW4gb3JkZXIgdG8gYXZvaWQgd3JhcGFyb3VuZC4KIAkgKi8K IAlOb3RpZnlDdGwtPlBhZ2VQcmVjZWRlcyA9IGFzeW5jUXVldWVQYWdlUHJlY2VkZXM7Ci0JTm90 aWZ5Q3RsLT5lcnJtc2dfZm9yX2lvX2Vycm9yID0geGFjdF9lcnJtc2dfZm9yX2lvX2Vycm9yOwor CU5vdGlmeUN0bC0+ZXJybXNnX2Zvcl9pb19lcnJvciA9IGFzeW5jUXVldWVFcnJtc2dGb3JJb0Vy cm9yOwogCVNpbXBsZUxydUluaXQoTm90aWZ5Q3RsLCAibm90aWZ5Iiwgbm90aWZ5X2J1ZmZlcnMs IDAsCiAJCQkJICAicGdfbm90aWZ5IiwgTFdUUkFOQ0hFX05PVElGWV9CVUZGRVIsIExXVFJBTkNI RV9OT1RJRllfU0xSVSwKIAkJCQkgIFNZTkNfSEFORExFUl9OT05FLCB0cnVlKTsKQEAgLTIwNjgs NyArMjA4MCw3IEBAIGFzeW5jUXVldWVBZGRFbnRyaWVzKExpc3RDZWxsICpuZXh0Tm90aWZ5KQog CWlmIChRVUVVRV9QT1NfSVNfWkVSTyhxdWV1ZV9oZWFkKSkKIAkJc2xvdG5vID0gU2ltcGxlTHJ1 WmVyb1BhZ2UoTm90aWZ5Q3RsLCBwYWdlbm8pOwogCWVsc2UKLQkJc2xvdG5vID0gU2ltcGxlTHJ1 UmVhZFBhZ2UoTm90aWZ5Q3RsLCBwYWdlbm8sIHRydWUsIE5VTEwpOworCQlzbG90bm8gPSBTaW1w bGVMcnVSZWFkUGFnZShOb3RpZnlDdGwsIHBhZ2VubywgdHJ1ZSwgJnF1ZXVlX2hlYWQpOwogCiAJ LyogTm90ZSB3ZSBtYXJrIHRoZSBwYWdlIGRpcnR5IGJlZm9yZSB3cml0aW5nIGluIGl0ICovCiAJ Tm90aWZ5Q3RsLT5zaGFyZWQtPnBhZ2VfZGlydHlbc2xvdG5vXSA9IHRydWU7CkBAIC0yNzM4LDcg KzI3NTAsNyBAQCBhc3luY1F1ZXVlUHJvY2Vzc1BhZ2VFbnRyaWVzKFF1ZXVlUG9zaXRpb24gKmN1 cnJlbnQsCiAJYWxpZ25hcyhBc3luY1F1ZXVlRW50cnkpIGNoYXIgbG9jYWxfYnVmW1FVRVVFX1BB R0VTSVpFXTsKIAljaGFyCSAgICpsb2NhbF9idWZfZW5kID0gbG9jYWxfYnVmOwogCi0Jc2xvdG5v ID0gU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkoTm90aWZ5Q3RsLCBjdXJwYWdlLCBOVUxMKTsK KwlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZV9SZWFkT25seShOb3RpZnlDdGwsIGN1cnBhZ2Us IGN1cnJlbnQpOwogCXBhZ2VfYnVmZmVyID0gTm90aWZ5Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVy W3Nsb3Rub107CiAKIAlkbwpAQCAtMjk5Niw3ICszMDA4LDcgQEAgQXN5bmNOb3RpZnlGcmVlemVY aWRzKFRyYW5zYWN0aW9uSWQgbmV3RnJvemVuWGlkKQogCiAJCQlsb2NrID0gU2ltcGxlTHJ1R2V0 QmFua0xvY2soTm90aWZ5Q3RsLCBwYWdlbm8pOwogCQkJTFdMb2NrQWNxdWlyZShsb2NrLCBMV19F WENMVVNJVkUpOwotCQkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTm90aWZ5Q3RsLCBwYWdl bm8sIHRydWUsIE5VTEwpOworCQkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTm90aWZ5Q3Rs LCBwYWdlbm8sIHRydWUsICZwb3MpOwogCQkJcGFnZV9idWZmZXIgPSBOb3RpZnlDdGwtPnNoYXJl ZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsKIAkJCWN1cnBhZ2UgPSBwYWdlbm87CiAJCX0KLS0gCjIu NDMuMAoK --0000000000005e306f064bbae7f1 Content-Type: application/octet-stream; name="v3-0005-Avoid-misleading-user-about-status-of-InvalidTran.patch" Content-Disposition: attachment; filename="v3-0005-Avoid-misleading-user-about-status-of-InvalidTran.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm3hxq914 RnJvbSBiZjUwYjNkYjYwY2M2Yzk2MDNiNWM2ZmYyNmVhMmQ4YTc5ZDk5NjVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjUgRmViIDIwMjYgMTg6MjA6MzIgKzAzMDAKU3ViamVjdDogW1BBVENIIHYzIDUvNV0g QXZvaWQgbWlzbGVhZGluZyB1c2VyIGFib3V0IHN0YXR1cyBvZgogSW52YWxpZFRyYW5zYWN0aW9u SWQKCkluIHNvbWUgY2FzZXMsIHdlIHVzZSB0aGUgYWNjZXNzIFNMUlUgcGFnZSB3aXRob3V0IHNw ZWNpZnlpbmcgdGhlIFhJRC4KSWYgYW4gZXJyb3Igb2NjdXJzLCB5b3UgbWF5IHJlY2VpdmUgYSBt ZXNzYWdlIGFib3V0IHRoZSBpbmFiaWxpdHkgdG8Kb2J0YWluIHN0YXR1cyBvZiB0cmFuc2FjdGlv biAwLCBldmVuIHRob3VnaCB0aGUgcGFnZSBhcHBlYXJzIHRvIGJlIHNhbmUuClRvIGF2b2lkIHRo aXMsIHVzZSBhIG1vcmUgZ2VuZXJhbCBmb3JtdWxhdGlvbiBpbiBjYXNlIFhJRCBpcyBpbnZhbGlk LgotLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmggfCA3ICsrKystLS0KIDEgZmlsZSBjaGFu Z2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3NscnUuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmgKaW5kZXggMWUw YmViMjY2MjguLjc4ZWUzNmMwNWE2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xy dS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmgKQEAgLTE2NiwxMCArMTY2LDExIEBA IHR5cGVkZWYgU2xydUN0bERhdGEgKlNscnVDdGw7CiBzdGF0aWMgaW5saW5lIGludAogeGFjdF9l cnJtc2dfZm9yX2lvX2Vycm9yKGNvbnN0IHZvaWQgKm9wYXF1ZV9kYXRhKQogewotCVRyYW5zYWN0 aW9uSWQgeGlkID0gb3BhcXVlX2RhdGEgPyAoKihUcmFuc2FjdGlvbklkICopIG9wYXF1ZV9kYXRh KSA6Ci0JCQkJCQkJCQkgIEludmFsaWRUcmFuc2FjdGlvbklkOworCWlmIChvcGFxdWVfZGF0YSkK KwkJcmV0dXJuIGVycm1zZygiY291bGQgbm90IGFjY2VzcyBzdGF0dXMgb2YgdHJhbnNhY3Rpb24g JXUiLAorCQkJCQkgICooVHJhbnNhY3Rpb25JZCAqKSBvcGFxdWVfZGF0YSk7CiAKLQlyZXR1cm4g ZXJybXNnKCJjb3VsZCBub3QgYWNjZXNzIHN0YXR1cyBvZiB0cmFuc2FjdGlvbiAldSIsIHhpZCk7 CisJcmV0dXJuIGVycm1zZygiY291bGQgbm90IGFjY2VzcyBzbHJ1IGVudHJ5Iik7CS8qIEludmFs aWRUcmFuc2FjdGlvbklkICovCiB9CiAKIC8qCi0tIAoyLjQzLjAKCg== --0000000000005e306f064bbae7f1 Content-Type: application/octet-stream; name="v3-0001-Add-a-callback-for-generating-an-I-O-message-in-t.patch" Content-Disposition: attachment; filename="v3-0001-Add-a-callback-for-generating-an-I-O-message-in-t.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm3hxq830 RnJvbSA0OTY0YjE5ZDQ5NWU5NDA1MGVmZDM3NDU0ZWZmN2RjODkxNDVhNzQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjUgRmViIDIwMjYgMTY6NTk6MzggKzAzMDAKU3ViamVjdDogW1BBVENIIHYzIDEvNV0g QWRkIGEgY2FsbGJhY2sgZm9yIGdlbmVyYXRpbmcgYW4gSS9PIG1lc3NhZ2UgaW4gdGhlCiBTTFJV CgpIaXN0b3JpY2FsbHksIHRoZSBTTFJVIG1vZHVsZSB3YXMgZGVzaWduZWQgdG8gd29yayB3aXRo IHRyYW5zYWN0aW9uIElEcy4KQnV0IG5vdyB3ZSB1c2UgaXQgdG8gd29yayB3aXRoIGRpZmZlcmVu dCBvYmplY3RzLCBhbmQgZXZlbiBvZiBkaWZmZXJlbnQKdHlwZXMuIEhvd2V2ZXIsIEkvTyBlcnJv cnMgY29udGludWVkIHRvIGJlIG91dHB1dCBpbiB0aGUKY29ycmVzcG9uZGluZyBYSURzIGZvcm1h dC4KClRoaXMgY29tbWl0IGFkZHMgYSBjYWxsYmFjayB0aGF0IHdpbGwgYWxsb3cgdG8gY3JlYXRl IGN1c3RvbSBJTyBlcnJvcgptZXNzYWdlcyBmb3IgbW9kdWxlcyB0aGF0IGRvbid0IHdvcmsgd2l0 aCB0cmFuc2FjdGlvbiBJRHMuCgpObyB1c2VyLXZpc2libGUgYmVoYXZpb3IgY2hhbmdlIGlzIGV4 cGVjdGVkIGluIHRoaXMgY29tbWl0LgotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Ns b2cuYyAgICAgIHwgIDggKysrLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRf dHMuYyB8ICA1ICsrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIHwg MjEgKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYyAgICAg IHwgMzggKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3N1YnRyYW5zLmMgIHwgIDUgKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYyAg ICAgICAgICAgfCAxMCArKystLS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRl LmMgICB8ICA1ICsrLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmggICAgICAgICAgICAgIHwg MjYgKysrKysrKysrKysrKysrKy0tCiBzcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3Ns cnUuYyB8ICA1ICsrLS0KIDkgZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNDUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5jCmluZGV4IGI1YzM4YmJiMTYyLi44 OTlmYTdiNDFlMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cuYwpAQCAtMzgxLDggKzM4MSw3 IEBAIFRyYW5zYWN0aW9uSWRTZXRQYWdlU3RhdHVzSW50ZXJuYWwoVHJhbnNhY3Rpb25JZCB4aWQs IGludCBuc3VieGlkcywKIAkgKiB3cml0ZS1idXN5LCBzaW5jZSB3ZSBkb24ndCBjYXJlIGlmIHRo ZSB1cGRhdGUgcmVhY2hlcyBkaXNrIHNvb25lciB0aGFuCiAJICogd2UgdGhpbmsuCiAJICovCi0J c2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoWGFjdEN0bCwgcGFnZW5vLCAhWExvZ1JlY1B0cklz VmFsaWQobHNuKSwKLQkJCQkJCQkgICB4aWQpOworCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdl KFhhY3RDdGwsIHBhZ2VubywgIVhMb2dSZWNQdHJJc1ZhbGlkKGxzbiksICZ4aWQpOwogCiAJLyoK IAkgKiBTZXQgdGhlIG1haW4gdHJhbnNhY3Rpb24gaWQsIGlmIGFueS4KQEAgLTc0Myw3ICs3NDIs NyBAQCBUcmFuc2FjdGlvbklkR2V0U3RhdHVzKFRyYW5zYWN0aW9uSWQgeGlkLCBYTG9nUmVjUHRy ICpsc24pCiAKIAkvKiBsb2NrIGlzIGFjcXVpcmVkIGJ5IFNpbXBsZUxydVJlYWRQYWdlX1JlYWRP bmx5ICovCiAKLQlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZV9SZWFkT25seShYYWN0Q3RsLCBw YWdlbm8sIHhpZCk7CisJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkoWGFjdEN0 bCwgcGFnZW5vLCAmeGlkKTsKIAlieXRlcHRyID0gWGFjdEN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZl cltzbG90bm9dICsgYnl0ZW5vOwogCiAJc3RhdHVzID0gKCpieXRlcHRyID4+IGJzaGlmdCkgJiBD TE9HX1hBQ1RfQklUTUFTSzsKQEAgLTgwNyw2ICs4MDYsNyBAQCBDTE9HU2htZW1Jbml0KHZvaWQp CiAJQXNzZXJ0KHRyYW5zYWN0aW9uX2J1ZmZlcnMgIT0gMCk7CiAKIAlYYWN0Q3RsLT5QYWdlUHJl Y2VkZXMgPSBDTE9HUGFnZVByZWNlZGVzOworCVhhY3RDdGwtPmVycm1zZ19mb3JfaW9fZXJyb3Ig PSB4YWN0X2Vycm1zZ19mb3JfaW9fZXJyb3I7CiAJU2ltcGxlTHJ1SW5pdChYYWN0Q3RsLCAidHJh bnNhY3Rpb24iLCBDTE9HU2htZW1CdWZmZXJzKCksIENMT0dfTFNOU19QRVJfUEFHRSwKIAkJCQkg ICJwZ194YWN0IiwgTFdUUkFOQ0hFX1hBQ1RfQlVGRkVSLAogCQkJCSAgTFdUUkFOQ0hFX1hBQ1Rf U0xSVSwgU1lOQ19IQU5ETEVSX0NMT0csIGZhbHNlKTsKQEAgLTg4Miw3ICs4ODIsNyBAQCBUcmlt Q0xPRyh2b2lkKQogCQlpbnQJCQlzbG90bm87CiAJCWNoYXIJICAgKmJ5dGVwdHI7CiAKLQkJc2xv dG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoWGFjdEN0bCwgcGFnZW5vLCBmYWxzZSwgeGlkKTsKKwkJ c2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoWGFjdEN0bCwgcGFnZW5vLCBmYWxzZSwgJnhpZCk7 CiAJCWJ5dGVwdHIgPSBYYWN0Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10gKyBieXRl bm87CiAKIAkJLyogWmVybyBzby1mYXItdW51c2VkIHBvc2l0aW9ucyBpbiB0aGUgY3VycmVudCBi eXRlICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9jb21taXRfdHMu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2NvbW1pdF90cy5jCmluZGV4IDZmYTIxNzhm MWRkLi45NTYzZTg3ZDliMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v Y29tbWl0X3RzLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMK QEAgLTIyNyw3ICsyMjcsNyBAQCBTZXRYaWRDb21taXRUc0luUGFnZShUcmFuc2FjdGlvbklkIHhp ZCwgaW50IG5zdWJ4aWRzLAogCiAJTFdMb2NrQWNxdWlyZShsb2NrLCBMV19FWENMVVNJVkUpOwog Ci0Jc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoQ29tbWl0VHNDdGwsIHBhZ2VubywgdHJ1ZSwg eGlkKTsKKwlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZShDb21taXRUc0N0bCwgcGFnZW5vLCB0 cnVlLCAmeGlkKTsKIAogCVRyYW5zYWN0aW9uSWRTZXRDb21taXRUcyh4aWQsIHRzLCBub2RlaWQs IHNsb3Rubyk7CiAJZm9yIChpID0gMDsgaSA8IG5zdWJ4aWRzOyBpKyspCkBAIC0zMzIsNyArMzMy LDcgQEAgVHJhbnNhY3Rpb25JZEdldENvbW1pdFRzRGF0YShUcmFuc2FjdGlvbklkIHhpZCwgVGlt ZXN0YW1wVHogKnRzLAogCX0KIAogCS8qIGxvY2sgaXMgYWNxdWlyZWQgYnkgU2ltcGxlTHJ1UmVh ZFBhZ2VfUmVhZE9ubHkgKi8KLQlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZV9SZWFkT25seShD b21taXRUc0N0bCwgcGFnZW5vLCB4aWQpOworCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdlX1Jl YWRPbmx5KENvbW1pdFRzQ3RsLCBwYWdlbm8sICZ4aWQpOwogCW1lbWNweSgmZW50cnksCiAJCSAg IENvbW1pdFRzQ3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub10gKwogCQkgICBTaXplT2ZD b21taXRUaW1lc3RhbXBFbnRyeSAqIGVudHJ5bm8sCkBAIC01NTEsNiArNTUxLDcgQEAgQ29tbWl0 VHNTaG1lbUluaXQodm9pZCkKIAlBc3NlcnQoY29tbWl0X3RpbWVzdGFtcF9idWZmZXJzICE9IDAp OwogCiAJQ29tbWl0VHNDdGwtPlBhZ2VQcmVjZWRlcyA9IENvbW1pdFRzUGFnZVByZWNlZGVzOwor CUNvbW1pdFRzQ3RsLT5lcnJtc2dfZm9yX2lvX2Vycm9yID0geGFjdF9lcnJtc2dfZm9yX2lvX2Vy cm9yOwogCVNpbXBsZUxydUluaXQoQ29tbWl0VHNDdGwsICJjb21taXRfdGltZXN0YW1wIiwgQ29t bWl0VHNTaG1lbUJ1ZmZlcnMoKSwgMCwKIAkJCQkgICJwZ19jb21taXRfdHMiLCBMV1RSQU5DSEVf Q09NTUlUVFNfQlVGRkVSLAogCQkJCSAgTFdUUkFOQ0hFX0NPTU1JVFRTX1NMUlUsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jCmluZGV4IDkwZWM4N2Q5ZGQ2Li44MTZmYjUwZmE0 YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKQEAgLTc5OCw3ICs3OTgs NyBAQCBSZWNvcmROZXdNdWx0aVhhY3QoTXVsdGlYYWN0SWQgbXVsdGksIE11bHRpWGFjdE9mZnNl dCBvZmZzZXQsCiAJICogZW5vdWdoIHRoYXQgYSBNdWx0aVhhY3RJZCBpcyByZWFsbHkgaW52b2x2 ZWQuICBQZXJoYXBzIHNvbWVkYXkgd2UnbGwKIAkgKiB0YWtlIHRoZSB0cm91YmxlIHRvIGdlbmVy YWxpemUgdGhlIHNscnUuYyBlcnJvciByZXBvcnRpbmcgY29kZS4KIAkgKi8KLQlzbG90bm8gPSBT aW1wbGVMcnVSZWFkUGFnZShNdWx0aVhhY3RPZmZzZXRDdGwsIHBhZ2VubywgdHJ1ZSwgbXVsdGkp OworCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdlKE11bHRpWGFjdE9mZnNldEN0bCwgcGFnZW5v LCB0cnVlLCAmbXVsdGkpOwogCW9mZnB0ciA9IChNdWx0aVhhY3RPZmZzZXQgKikgTXVsdGlYYWN0 T2Zmc2V0Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub107CiAJb2ZmcHRyICs9IGVudHJ5 bm87CiAKQEAgLTgyNyw3ICs4MjcsNyBAQCBSZWNvcmROZXdNdWx0aVhhY3QoTXVsdGlYYWN0SWQg bXVsdGksIE11bHRpWGFjdE9mZnNldCBvZmZzZXQsCiAJCWxvY2sgPSBTaW1wbGVMcnVHZXRCYW5r TG9jayhNdWx0aVhhY3RPZmZzZXRDdGwsIG5leHRfcGFnZW5vKTsKIAkJTFdMb2NrQWNxdWlyZShs b2NrLCBMV19FWENMVVNJVkUpOwogCi0JCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdlKE11bHRp WGFjdE9mZnNldEN0bCwgbmV4dF9wYWdlbm8sIHRydWUsIG5leHQpOworCQlzbG90bm8gPSBTaW1w bGVMcnVSZWFkUGFnZShNdWx0aVhhY3RPZmZzZXRDdGwsIG5leHRfcGFnZW5vLCB0cnVlLCAmbmV4 dCk7CiAJCW5leHRfb2ZmcHRyID0gKE11bHRpWGFjdE9mZnNldCAqKSBNdWx0aVhhY3RPZmZzZXRD dGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsKIAkJbmV4dF9vZmZwdHIgKz0gbmV4dF9l bnRyeW5vOwogCX0KQEAgLTg4MSw3ICs4ODEsNyBAQCBSZWNvcmROZXdNdWx0aVhhY3QoTXVsdGlY YWN0SWQgbXVsdGksIE11bHRpWGFjdE9mZnNldCBvZmZzZXQsCiAJCQkJTFdMb2NrQWNxdWlyZShs b2NrLCBMV19FWENMVVNJVkUpOwogCQkJCXByZXZsb2NrID0gbG9jazsKIAkJCX0KLQkJCXNsb3Ru byA9IFNpbXBsZUxydVJlYWRQYWdlKE11bHRpWGFjdE1lbWJlckN0bCwgcGFnZW5vLCB0cnVlLCBt dWx0aSk7CisJCQlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZShNdWx0aVhhY3RNZW1iZXJDdGws IHBhZ2VubywgdHJ1ZSwgJm11bHRpKTsKIAkJCXByZXZfcGFnZW5vID0gcGFnZW5vOwogCQl9CiAK QEAgLTEyMDYsNyArMTIwNiw3IEBAIEdldE11bHRpWGFjdElkTWVtYmVycyhNdWx0aVhhY3RJZCBt dWx0aSwgTXVsdGlYYWN0TWVtYmVyICoqbWVtYmVycywKIAlMV0xvY2tBY3F1aXJlKGxvY2ssIExX X0VYQ0xVU0lWRSk7CiAKIAkvKiByZWFkIHRoaXMgbXVsdGkncyBvZmZzZXQgKi8KLQlzbG90bm8g PSBTaW1wbGVMcnVSZWFkUGFnZShNdWx0aVhhY3RPZmZzZXRDdGwsIHBhZ2VubywgdHJ1ZSwgbXVs dGkpOworCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdlKE11bHRpWGFjdE9mZnNldEN0bCwgcGFn ZW5vLCB0cnVlLCAmbXVsdGkpOwogCW9mZnB0ciA9IChNdWx0aVhhY3RPZmZzZXQgKikgTXVsdGlY YWN0T2Zmc2V0Q3RsLT5zaGFyZWQtPnBhZ2VfYnVmZmVyW3Nsb3Rub107CiAJb2ZmcHRyICs9IGVu dHJ5bm87CiAJb2Zmc2V0ID0gKm9mZnB0cjsKQEAgLTEyNDQsNyArMTI0NCw3IEBAIEdldE11bHRp WGFjdElkTWVtYmVycyhNdWx0aVhhY3RJZCBtdWx0aSwgTXVsdGlYYWN0TWVtYmVyICoqbWVtYmVy cywKIAkJCQlMV0xvY2tBY3F1aXJlKG5ld2xvY2ssIExXX0VYQ0xVU0lWRSk7CiAJCQkJbG9jayA9 IG5ld2xvY2s7CiAJCQl9Ci0JCQlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZShNdWx0aVhhY3RP ZmZzZXRDdGwsIHBhZ2VubywgdHJ1ZSwgdG1wTVhhY3QpOworCQkJc2xvdG5vID0gU2ltcGxlTHJ1 UmVhZFBhZ2UoTXVsdGlYYWN0T2Zmc2V0Q3RsLCBwYWdlbm8sIHRydWUsICZ0bXBNWGFjdCk7CiAJ CX0KIAogCQlvZmZwdHIgPSAoTXVsdGlYYWN0T2Zmc2V0ICopIE11bHRpWGFjdE9mZnNldEN0bC0+ c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dOwpAQCAtMTMwOSw3ICsxMzA5LDcgQEAgR2V0TXVs dGlYYWN0SWRNZW1iZXJzKE11bHRpWGFjdElkIG11bHRpLCBNdWx0aVhhY3RNZW1iZXIgKiptZW1i ZXJzLAogCQkJCWxvY2sgPSBuZXdsb2NrOwogCQkJfQogCi0JCQlzbG90bm8gPSBTaW1wbGVMcnVS ZWFkUGFnZShNdWx0aVhhY3RNZW1iZXJDdGwsIHBhZ2VubywgdHJ1ZSwgbXVsdGkpOworCQkJc2xv dG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTXVsdGlYYWN0TWVtYmVyQ3RsLCBwYWdlbm8sIHRydWUs ICZtdWx0aSk7CiAJCQlwcmV2X3BhZ2VubyA9IHBhZ2VubzsKIAkJfQogCkBAIC0xNzMwLDYgKzE3 MzAsOSBAQCBNdWx0aVhhY3RTaG1lbUluaXQodm9pZCkKIAlNdWx0aVhhY3RPZmZzZXRDdGwtPlBh Z2VQcmVjZWRlcyA9IE11bHRpWGFjdE9mZnNldFBhZ2VQcmVjZWRlczsKIAlNdWx0aVhhY3RNZW1i ZXJDdGwtPlBhZ2VQcmVjZWRlcyA9IE11bHRpWGFjdE1lbWJlclBhZ2VQcmVjZWRlczsKIAorCU11 bHRpWGFjdE9mZnNldEN0bC0+ZXJybXNnX2Zvcl9pb19lcnJvciA9IHhhY3RfZXJybXNnX2Zvcl9p b19lcnJvcjsKKwlNdWx0aVhhY3RNZW1iZXJDdGwtPmVycm1zZ19mb3JfaW9fZXJyb3IgPSB4YWN0 X2Vycm1zZ19mb3JfaW9fZXJyb3I7CisKIAlTaW1wbGVMcnVJbml0KE11bHRpWGFjdE9mZnNldEN0 bCwKIAkJCQkgICJtdWx0aXhhY3Rfb2Zmc2V0IiwgbXVsdGl4YWN0X29mZnNldF9idWZmZXJzLCAw LAogCQkJCSAgInBnX211bHRpeGFjdC9vZmZzZXRzIiwgTFdUUkFOQ0hFX01VTFRJWEFDVE9GRlNF VF9CVUZGRVIsCkBAIC0xODc5LDcgKzE4ODIsNyBAQCBUcmltTXVsdGlYYWN0KHZvaWQpCiAJCWlm IChlbnRyeW5vID09IDAgfHwgbmV4dE1YYWN0ID09IEZpcnN0TXVsdGlYYWN0SWQpCiAJCQlzbG90 bm8gPSBTaW1wbGVMcnVaZXJvUGFnZShNdWx0aVhhY3RPZmZzZXRDdGwsIHBhZ2Vubyk7CiAJCWVs c2UKLQkJCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdlKE11bHRpWGFjdE9mZnNldEN0bCwgcGFn ZW5vLCB0cnVlLCBuZXh0TVhhY3QpOworCQkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTXVs dGlYYWN0T2Zmc2V0Q3RsLCBwYWdlbm8sIHRydWUsICZuZXh0TVhhY3QpOwogCQlvZmZwdHIgPSAo TXVsdGlYYWN0T2Zmc2V0ICopIE11bHRpWGFjdE9mZnNldEN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZl cltzbG90bm9dOwogCQlvZmZwdHIgKz0gZW50cnlubzsKIApAQCAtMTkxNCw3ICsxOTE3LDcgQEAg VHJpbU11bHRpWGFjdCh2b2lkKQogCiAJCUxXTG9ja0FjcXVpcmUobG9jaywgTFdfRVhDTFVTSVZF KTsKIAkJbWVtYmVyb2ZmID0gTVhPZmZzZXRUb01lbWJlck9mZnNldChvZmZzZXQpOwotCQlzbG90 bm8gPSBTaW1wbGVMcnVSZWFkUGFnZShNdWx0aVhhY3RNZW1iZXJDdGwsIHBhZ2VubywgdHJ1ZSwg b2Zmc2V0KTsKKwkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTXVsdGlYYWN0TWVtYmVyQ3Rs LCBwYWdlbm8sIHRydWUsICZvZmZzZXQpOwogCQl4aWRwdHIgPSAoVHJhbnNhY3Rpb25JZCAqKQog CQkJKE11bHRpWGFjdE1lbWJlckN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9dICsgbWVt YmVyb2ZmKTsKIApAQCAtMjQ0NCw3ICsyNDQ3LDcgQEAgZmluZF9tdWx0aXhhY3Rfc3RhcnQoTXVs dGlYYWN0SWQgbXVsdGksIE11bHRpWGFjdE9mZnNldCAqcmVzdWx0KQogCQlyZXR1cm4gZmFsc2U7 CiAKIAkvKiBsb2NrIGlzIGFjcXVpcmVkIGJ5IFNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5ICov Ci0Jc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkoTXVsdGlYYWN0T2Zmc2V0Q3Rs LCBwYWdlbm8sIG11bHRpKTsKKwlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZV9SZWFkT25seShN dWx0aVhhY3RPZmZzZXRDdGwsIHBhZ2VubywgJm11bHRpKTsKIAlvZmZwdHIgPSAoTXVsdGlYYWN0 T2Zmc2V0ICopIE11bHRpWGFjdE9mZnNldEN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZlcltzbG90bm9d OwogCW9mZnB0ciArPSBlbnRyeW5vOwogCW9mZnNldCA9ICpvZmZwdHI7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS9zbHJ1LmMKaW5kZXggNTQ5YzdlM2U2NGIuLjBiNWJiMTFhMThkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9zbHJ1LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0vc2xydS5jCkBAIC0xODEsNyArMTgxLDggQEAgc3RhdGljIHZvaWQgU2xydUludGVy bmFsV3JpdGVQYWdlKFNscnVDdGwgY3RsLCBpbnQgc2xvdG5vLCBTbHJ1V3JpdGVBbGwgZmRhdGEp Owogc3RhdGljIGJvb2wgU2xydVBoeXNpY2FsUmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBh Z2VubywgaW50IHNsb3Rubyk7CiBzdGF0aWMgYm9vbCBTbHJ1UGh5c2ljYWxXcml0ZVBhZ2UoU2xy dUN0bCBjdGwsIGludDY0IHBhZ2VubywgaW50IHNsb3RubywKIAkJCQkJCQkJICBTbHJ1V3JpdGVB bGwgZmRhdGEpOwotc3RhdGljIHZvaWQgU2xydVJlcG9ydElPRXJyb3IoU2xydUN0bCBjdGwsIGlu dDY0IHBhZ2VubywgVHJhbnNhY3Rpb25JZCB4aWQpOworc3RhdGljIHZvaWQgU2xydVJlcG9ydElP RXJyb3IoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywKKwkJCQkJCQkgIGNvbnN0IHZvaWQgKm9w YXF1ZV9kYXRhKTsKIHN0YXRpYyBpbnQJU2xydVNlbGVjdExSVVBhZ2UoU2xydUN0bCBjdGwsIGlu dDY0IHBhZ2Vubyk7CiAKIHN0YXRpYyBib29sIFNscnVTY2FuRGlyQ2JEZWxldGVDdXRvZmYoU2xy dUN0bCBjdGwsIGNoYXIgKmZpbGVuYW1lLApAQCAtMjU3LDYgKzI1OCwxMCBAQCBTaW1wbGVMcnVJ bml0KFNscnVDdGwgY3RsLCBjb25zdCBjaGFyICpuYW1lLCBpbnQgbnNsb3RzLCBpbnQgbmxzbnMs CiAJYm9vbAkJZm91bmQ7CiAJaW50CQkJbmJhbmtzID0gbnNsb3RzIC8gU0xSVV9CQU5LX1NJWkU7 CiAKKwkvKiBNYWtlIHN1cmUgY2FsbGJhY2tzIGFyZSBzZXQgdXAgKi8KKwlBc3NlcnQoY3RsLT5Q YWdlUHJlY2VkZXMgIT0gTlVMTCk7CisJQXNzZXJ0KGN0bC0+ZXJybXNnX2Zvcl9pb19lcnJvciAh PSBOVUxMKTsKKwogCUFzc2VydChuc2xvdHMgPD0gU0xSVV9NQVhfQUxMT1dFRF9CVUZGRVJTKTsK IAogCXNoYXJlZCA9IChTbHJ1U2hhcmVkKSBTaG1lbUluaXRTdHJ1Y3QobmFtZSwKQEAgLTUyNSw3 ICs1MzAsNyBAQCBTaW1wbGVMcnVXYWl0SU8oU2xydUN0bCBjdGwsIGludCBzbG90bm8pCiAgKi8K IGludAogU2ltcGxlTHJ1UmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgYm9vbCB3 cml0ZV9vaywKLQkJCQkgIFRyYW5zYWN0aW9uSWQgeGlkKQorCQkJCSAgY29uc3Qgdm9pZCAqb3Bh cXVlX2RhdGEpCiB7CiAJU2xydVNoYXJlZAlzaGFyZWQgPSBjdGwtPnNoYXJlZDsKIAlMV0xvY2sJ ICAgKmJhbmtsb2NrID0gU2ltcGxlTHJ1R2V0QmFua0xvY2soY3RsLCBwYWdlbm8pOwpAQCAtNjAx LDcgKzYwNiw3IEBAIFNpbXBsZUxydVJlYWRQYWdlKFNscnVDdGwgY3RsLCBpbnQ2NCBwYWdlbm8s IGJvb2wgd3JpdGVfb2ssCiAKIAkJLyogTm93IGl0J3Mgb2theSB0byBlcmVwb3J0IGlmIHdlIGZh aWxlZCAqLwogCQlpZiAoIW9rKQotCQkJU2xydVJlcG9ydElPRXJyb3IoY3RsLCBwYWdlbm8sIHhp ZCk7CisJCQlTbHJ1UmVwb3J0SU9FcnJvcihjdGwsIHBhZ2Vubywgb3BhcXVlX2RhdGEpOwogCiAJ CVNscnVSZWNlbnRseVVzZWQoc2hhcmVkLCBzbG90bm8pOwogCkBAIC02MjcsNyArNjMyLDcgQEAg U2ltcGxlTHJ1UmVhZFBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgYm9vbCB3cml0ZV9v aywKICAqIEl0IGlzIHVuc3BlY2lmaWVkIHdoZXRoZXIgdGhlIGxvY2sgd2lsbCBiZSBzaGFyZWQg b3IgZXhjbHVzaXZlLgogICovCiBpbnQKLVNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5KFNscnVD dGwgY3RsLCBpbnQ2NCBwYWdlbm8sIFRyYW5zYWN0aW9uSWQgeGlkKQorU2ltcGxlTHJ1UmVhZFBh Z2VfUmVhZE9ubHkoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgY29uc3Qgdm9pZCAqb3BhcXVl X2RhdGEpCiB7CiAJU2xydVNoYXJlZAlzaGFyZWQgPSBjdGwtPnNoYXJlZDsKIAlMV0xvY2sJICAg KmJhbmtsb2NrID0gU2ltcGxlTHJ1R2V0QmFua0xvY2soY3RsLCBwYWdlbm8pOwpAQCAtNjU5LDcg KzY2NCw3IEBAIFNpbXBsZUxydVJlYWRQYWdlX1JlYWRPbmx5KFNscnVDdGwgY3RsLCBpbnQ2NCBw YWdlbm8sIFRyYW5zYWN0aW9uSWQgeGlkKQogCUxXTG9ja1JlbGVhc2UoYmFua2xvY2spOwogCUxX TG9ja0FjcXVpcmUoYmFua2xvY2ssIExXX0VYQ0xVU0lWRSk7CiAKLQlyZXR1cm4gU2ltcGxlTHJ1 UmVhZFBhZ2UoY3RsLCBwYWdlbm8sIHRydWUsIHhpZCk7CisJcmV0dXJuIFNpbXBsZUxydVJlYWRQ YWdlKGN0bCwgcGFnZW5vLCB0cnVlLCBvcGFxdWVfZGF0YSk7CiB9CiAKIC8qCkBAIC02ODIsNiAr Njg3LDcgQEAgU2xydUludGVybmFsV3JpdGVQYWdlKFNscnVDdGwgY3RsLCBpbnQgc2xvdG5vLCBT bHJ1V3JpdGVBbGwgZmRhdGEpCiAJYm9vbAkJb2s7CiAKIAlBc3NlcnQoc2hhcmVkLT5wYWdlX3N0 YXR1c1tzbG90bm9dICE9IFNMUlVfUEFHRV9FTVBUWSk7CisKIAlBc3NlcnQoTFdMb2NrSGVsZEJ5 TWVJbk1vZGUoU2ltcGxlTHJ1R2V0QmFua0xvY2soY3RsLCBwYWdlbm8pLCBMV19FWENMVVNJVkUp KTsKIAogCS8qIElmIGEgd3JpdGUgaXMgaW4gcHJvZ3Jlc3MsIHdhaXQgZm9yIGl0IHRvIGZpbmlz aCAqLwpAQCAtNzM5LDcgKzc0NSw3IEBAIFNscnVJbnRlcm5hbFdyaXRlUGFnZShTbHJ1Q3RsIGN0 bCwgaW50IHNsb3RubywgU2xydVdyaXRlQWxsIGZkYXRhKQogCiAJLyogTm93IGl0J3Mgb2theSB0 byBlcmVwb3J0IGlmIHdlIGZhaWxlZCAqLwogCWlmICghb2spCi0JCVNscnVSZXBvcnRJT0Vycm9y KGN0bCwgcGFnZW5vLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCk7CisJCVNscnVSZXBvcnRJT0Vycm9y KGN0bCwgcGFnZW5vLCBOVUxMKTsKIAogCS8qIElmIHBhcnQgb2YgYSBjaGVja3BvaW50LCBjb3Vu dCB0aGlzIGFzIGEgU0xSVSBidWZmZXIgd3JpdHRlbi4gKi8KIAlpZiAoZmRhdGEpCkBAIC0xMDcw LDcgKzEwNzYsNyBAQCBTbHJ1UGh5c2ljYWxXcml0ZVBhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBh Z2VubywgaW50IHNsb3RubywgU2xydVdyaXRlQWxsIGZkYXRhKQogICogU2xydVBoeXNpY2FsV3Jp dGVQYWdlLiAgQ2FsbCB0aGlzIGFmdGVyIGNsZWFuaW5nIHVwIHNoYXJlZC1tZW1vcnkgc3RhdGUu CiAgKi8KIHN0YXRpYyB2b2lkCi1TbHJ1UmVwb3J0SU9FcnJvcihTbHJ1Q3RsIGN0bCwgaW50NjQg cGFnZW5vLCBUcmFuc2FjdGlvbklkIHhpZCkKK1NscnVSZXBvcnRJT0Vycm9yKFNscnVDdGwgY3Rs LCBpbnQ2NCBwYWdlbm8sIGNvbnN0IHZvaWQgKm9wYXF1ZV9kYXRhKQogewogCWludDY0CQlzZWdu byA9IHBhZ2VubyAvIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQ7CiAJaW50CQkJcnBhZ2VubyA9IHBh Z2VubyAlIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQ7CkBAIC0xMDg0LDEzICsxMDkwLDEzIEBAIFNs cnVSZXBvcnRJT0Vycm9yKFNscnVDdGwgY3RsLCBpbnQ2NCBwYWdlbm8sIFRyYW5zYWN0aW9uSWQg eGlkKQogCQljYXNlIFNMUlVfT1BFTl9GQUlMRUQ6CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQko ZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKLQkJCQkJIGVycm1zZygiY291bGQgbm90IGFjY2Vz cyBzdGF0dXMgb2YgdHJhbnNhY3Rpb24gJXUiLCB4aWQpLAorCQkJCQkgY3RsLT5lcnJtc2dfZm9y X2lvX2Vycm9yKG9wYXF1ZV9kYXRhKSwKIAkJCQkJIGVycmRldGFpbCgiQ291bGQgbm90IG9wZW4g ZmlsZSBcIiVzXCI6ICVtLiIsIHBhdGgpKSk7CiAJCQlicmVhazsKIAkJY2FzZSBTTFJVX1NFRUtf RkFJTEVEOgogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNz KCksCi0JCQkJCSBlcnJtc2coImNvdWxkIG5vdCBhY2Nlc3Mgc3RhdHVzIG9mIHRyYW5zYWN0aW9u ICV1IiwgeGlkKSwKKwkJCQkJIGN0bC0+ZXJybXNnX2Zvcl9pb19lcnJvcihvcGFxdWVfZGF0YSks CiAJCQkJCSBlcnJkZXRhaWwoIkNvdWxkIG5vdCBzZWVrIGluIGZpbGUgXCIlc1wiIHRvIG9mZnNl dCAlZDogJW0uIiwKIAkJCQkJCQkgICBwYXRoLCBvZmZzZXQpKSk7CiAJCQlicmVhazsKQEAgLTEw OTgsMzggKzExMDQsMzggQEAgU2xydVJlcG9ydElPRXJyb3IoU2xydUN0bCBjdGwsIGludDY0IHBh Z2VubywgVHJhbnNhY3Rpb25JZCB4aWQpCiAJCQlpZiAoZXJybm8pCiAJCQkJZXJlcG9ydChFUlJP UiwKIAkJCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAotCQkJCQkJIGVycm1zZygiY291 bGQgbm90IGFjY2VzcyBzdGF0dXMgb2YgdHJhbnNhY3Rpb24gJXUiLCB4aWQpLAorCQkJCQkJIGN0 bC0+ZXJybXNnX2Zvcl9pb19lcnJvcihvcGFxdWVfZGF0YSksCiAJCQkJCQkgZXJyZGV0YWlsKCJD b3VsZCBub3QgcmVhZCBmcm9tIGZpbGUgXCIlc1wiIGF0IG9mZnNldCAlZDogJW0uIiwKIAkJCQkJ CQkJICAgcGF0aCwgb2Zmc2V0KSkpOwogCQkJZWxzZQogCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJ CQkoZXJybXNnKCJjb3VsZCBub3QgYWNjZXNzIHN0YXR1cyBvZiB0cmFuc2FjdGlvbiAldSIsIHhp ZCksCisJCQkJCQkoY3RsLT5lcnJtc2dfZm9yX2lvX2Vycm9yKG9wYXF1ZV9kYXRhKSwKIAkJCQkJ CSBlcnJkZXRhaWwoIkNvdWxkIG5vdCByZWFkIGZyb20gZmlsZSBcIiVzXCIgYXQgb2Zmc2V0ICVk OiByZWFkIHRvbyBmZXcgYnl0ZXMuIiwgcGF0aCwgb2Zmc2V0KSkpOwogCQkJYnJlYWs7CiAJCWNh c2UgU0xSVV9XUklURV9GQUlMRUQ6CiAJCQlpZiAoZXJybm8pCiAJCQkJZXJlcG9ydChFUlJPUiwK IAkJCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAotCQkJCQkJIGVycm1zZygiY291bGQg bm90IGFjY2VzcyBzdGF0dXMgb2YgdHJhbnNhY3Rpb24gJXUiLCB4aWQpLAorCQkJCQkJIGN0bC0+ ZXJybXNnX2Zvcl9pb19lcnJvcihvcGFxdWVfZGF0YSksCiAJCQkJCQkgZXJyZGV0YWlsKCJDb3Vs ZCBub3Qgd3JpdGUgdG8gZmlsZSBcIiVzXCIgYXQgb2Zmc2V0ICVkOiAlbS4iLAogCQkJCQkJCQkg ICBwYXRoLCBvZmZzZXQpKSk7CiAJCQllbHNlCiAJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCShl cnJtc2coImNvdWxkIG5vdCBhY2Nlc3Mgc3RhdHVzIG9mIHRyYW5zYWN0aW9uICV1IiwgeGlkKSwK KwkJCQkJCShjdGwtPmVycm1zZ19mb3JfaW9fZXJyb3Iob3BhcXVlX2RhdGEpLAogCQkJCQkJIGVy cmRldGFpbCgiQ291bGQgbm90IHdyaXRlIHRvIGZpbGUgXCIlc1wiIGF0IG9mZnNldCAlZDogd3Jv dGUgdG9vIGZldyBieXRlcy4iLAogCQkJCQkJCQkgICBwYXRoLCBvZmZzZXQpKSk7CiAJCQlicmVh azsKIAkJY2FzZSBTTFJVX0ZTWU5DX0ZBSUxFRDoKIAkJCWVyZXBvcnQoZGF0YV9zeW5jX2VsZXZl bChFUlJPUiksCiAJCQkJCShlcnJjb2RlX2Zvcl9maWxlX2FjY2VzcygpLAotCQkJCQkgZXJybXNn KCJjb3VsZCBub3QgYWNjZXNzIHN0YXR1cyBvZiB0cmFuc2FjdGlvbiAldSIsIHhpZCksCisJCQkJ CSBjdGwtPmVycm1zZ19mb3JfaW9fZXJyb3Iob3BhcXVlX2RhdGEpLAogCQkJCQkgZXJyZGV0YWls KCJDb3VsZCBub3QgZnN5bmMgZmlsZSBcIiVzXCI6ICVtLiIsCiAJCQkJCQkJICAgcGF0aCkpKTsK IAkJCWJyZWFrOwogCQljYXNlIFNMUlVfQ0xPU0VfRkFJTEVEOgogCQkJZXJlcG9ydChFUlJPUiwK IAkJCQkJKGVycmNvZGVfZm9yX2ZpbGVfYWNjZXNzKCksCi0JCQkJCSBlcnJtc2coImNvdWxkIG5v dCBhY2Nlc3Mgc3RhdHVzIG9mIHRyYW5zYWN0aW9uICV1IiwgeGlkKSwKKwkJCQkJIGN0bC0+ZXJy bXNnX2Zvcl9pb19lcnJvcihvcGFxdWVfZGF0YSksCiAJCQkJCSBlcnJkZXRhaWwoIkNvdWxkIG5v dCBjbG9zZSBmaWxlIFwiJXNcIjogJW0uIiwKIAkJCQkJCQkgICBwYXRoKSkpOwogCQkJYnJlYWs7 CkBAIC0xNDExLDcgKzE0MTcsNyBAQCBTaW1wbGVMcnVXcml0ZUFsbChTbHJ1Q3RsIGN0bCwgYm9v bCBhbGxvd19yZWRpcnRpZWQpCiAJCX0KIAl9CiAJaWYgKCFvaykKLQkJU2xydVJlcG9ydElPRXJy b3IoY3RsLCBwYWdlbm8sIEludmFsaWRUcmFuc2FjdGlvbklkKTsKKwkJU2xydVJlcG9ydElPRXJy b3IoY3RsLCBwYWdlbm8sIE5VTEwpOwogCiAJLyogRW5zdXJlIHRoYXQgZGlyZWN0b3J5IGVudHJp ZXMgZm9yIG5ldyBmaWxlcyBhcmUgb24gZGlzay4gKi8KIAlpZiAoY3RsLT5zeW5jX2hhbmRsZXIg IT0gU1lOQ19IQU5ETEVSX05PTkUpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS9zdWJ0cmFucy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3VidHJhbnMuYwpp bmRleCBjMDk4N2Y0M2YxMS4uMThiN2RhN2ZjYTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v c3VidHJhbnMuYwpAQCAtOTUsNyArOTUsNyBAQCBTdWJUcmFuc1NldFBhcmVudChUcmFuc2FjdGlv bklkIHhpZCwgVHJhbnNhY3Rpb25JZCBwYXJlbnQpCiAJbG9jayA9IFNpbXBsZUxydUdldEJhbmtM b2NrKFN1YlRyYW5zQ3RsLCBwYWdlbm8pOwogCUxXTG9ja0FjcXVpcmUobG9jaywgTFdfRVhDTFVT SVZFKTsKIAotCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdlKFN1YlRyYW5zQ3RsLCBwYWdlbm8s IHRydWUsIHhpZCk7CisJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoU3ViVHJhbnNDdGwsIHBh Z2VubywgdHJ1ZSwgJnhpZCk7CiAJcHRyID0gKFRyYW5zYWN0aW9uSWQgKikgU3ViVHJhbnNDdGwt PnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsKIAlwdHIgKz0gZW50cnlubzsKIApAQCAtMTM1 LDcgKzEzNSw3IEBAIFN1YlRyYW5zR2V0UGFyZW50KFRyYW5zYWN0aW9uSWQgeGlkKQogCiAJLyog bG9jayBpcyBhY3F1aXJlZCBieSBTaW1wbGVMcnVSZWFkUGFnZV9SZWFkT25seSAqLwogCi0Jc2xv dG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkoU3ViVHJhbnNDdGwsIHBhZ2VubywgeGlk KTsKKwlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZV9SZWFkT25seShTdWJUcmFuc0N0bCwgcGFn ZW5vLCAmeGlkKTsKIAlwdHIgPSAoVHJhbnNhY3Rpb25JZCAqKSBTdWJUcmFuc0N0bC0+c2hhcmVk LT5wYWdlX2J1ZmZlcltzbG90bm9dOwogCXB0ciArPSBlbnRyeW5vOwogCkBAIC0yNDAsNiArMjQw LDcgQEAgU1VCVFJBTlNTaG1lbUluaXQodm9pZCkKIAlBc3NlcnQoc3VidHJhbnNhY3Rpb25fYnVm ZmVycyAhPSAwKTsKIAogCVN1YlRyYW5zQ3RsLT5QYWdlUHJlY2VkZXMgPSBTdWJUcmFuc1BhZ2VQ cmVjZWRlczsKKwlTdWJUcmFuc0N0bC0+ZXJybXNnX2Zvcl9pb19lcnJvciA9IHhhY3RfZXJybXNn X2Zvcl9pb19lcnJvcjsKIAlTaW1wbGVMcnVJbml0KFN1YlRyYW5zQ3RsLCAic3VidHJhbnNhY3Rp b24iLCBTVUJUUkFOU1NobWVtQnVmZmVycygpLCAwLAogCQkJCSAgInBnX3N1YnRyYW5zIiwgTFdU UkFOQ0hFX1NVQlRSQU5TX0JVRkZFUiwKIAkJCQkgIExXVFJBTkNIRV9TVUJUUkFOU19TTFJVLCBT WU5DX0hBTkRMRVJfTk9ORSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvYXN5bmMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMKaW5kZXggNjU3YzU5MTYx OGQuLjhhZmQxMzE1YTljIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hc3luYy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMKQEAgLTgyOSw2ICs4MjksNyBAQCBB c3luY1NobWVtSW5pdCh2b2lkKQogCSAqIG5hbWVzIGFyZSB1c2VkIGluIG9yZGVyIHRvIGF2b2lk IHdyYXBhcm91bmQuCiAJICovCiAJTm90aWZ5Q3RsLT5QYWdlUHJlY2VkZXMgPSBhc3luY1F1ZXVl UGFnZVByZWNlZGVzOworCU5vdGlmeUN0bC0+ZXJybXNnX2Zvcl9pb19lcnJvciA9IHhhY3RfZXJy bXNnX2Zvcl9pb19lcnJvcjsKIAlTaW1wbGVMcnVJbml0KE5vdGlmeUN0bCwgIm5vdGlmeSIsIG5v dGlmeV9idWZmZXJzLCAwLAogCQkJCSAgInBnX25vdGlmeSIsIExXVFJBTkNIRV9OT1RJRllfQlVG RkVSLCBMV1RSQU5DSEVfTk9USUZZX1NMUlUsCiAJCQkJICBTWU5DX0hBTkRMRVJfTk9ORSwgdHJ1 ZSk7CkBAIC0yMDY3LDggKzIwNjgsNyBAQCBhc3luY1F1ZXVlQWRkRW50cmllcyhMaXN0Q2VsbCAq bmV4dE5vdGlmeSkKIAlpZiAoUVVFVUVfUE9TX0lTX1pFUk8ocXVldWVfaGVhZCkpCiAJCXNsb3Ru byA9IFNpbXBsZUxydVplcm9QYWdlKE5vdGlmeUN0bCwgcGFnZW5vKTsKIAllbHNlCi0JCXNsb3Ru byA9IFNpbXBsZUxydVJlYWRQYWdlKE5vdGlmeUN0bCwgcGFnZW5vLCB0cnVlLAotCQkJCQkJCQkg ICBJbnZhbGlkVHJhbnNhY3Rpb25JZCk7CisJCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdlKE5v dGlmeUN0bCwgcGFnZW5vLCB0cnVlLCBOVUxMKTsKIAogCS8qIE5vdGUgd2UgbWFyayB0aGUgcGFn ZSBkaXJ0eSBiZWZvcmUgd3JpdGluZyBpbiBpdCAqLwogCU5vdGlmeUN0bC0+c2hhcmVkLT5wYWdl X2RpcnR5W3Nsb3Rub10gPSB0cnVlOwpAQCAtMjczOCw4ICsyNzM4LDcgQEAgYXN5bmNRdWV1ZVBy b2Nlc3NQYWdlRW50cmllcyhRdWV1ZVBvc2l0aW9uICpjdXJyZW50LAogCWFsaWduYXMoQXN5bmNR dWV1ZUVudHJ5KSBjaGFyIGxvY2FsX2J1ZltRVUVVRV9QQUdFU0laRV07CiAJY2hhcgkgICAqbG9j YWxfYnVmX2VuZCA9IGxvY2FsX2J1ZjsKIAotCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdlX1Jl YWRPbmx5KE5vdGlmeUN0bCwgY3VycGFnZSwKLQkJCQkJCQkJCQlJbnZhbGlkVHJhbnNhY3Rpb25J ZCk7CisJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkoTm90aWZ5Q3RsLCBjdXJw YWdlLCBOVUxMKTsKIAlwYWdlX2J1ZmZlciA9IE5vdGlmeUN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZl cltzbG90bm9dOwogCiAJZG8KQEAgLTI5OTcsOCArMjk5Niw3IEBAIEFzeW5jTm90aWZ5RnJlZXpl WGlkcyhUcmFuc2FjdGlvbklkIG5ld0Zyb3plblhpZCkKIAogCQkJbG9jayA9IFNpbXBsZUxydUdl dEJhbmtMb2NrKE5vdGlmeUN0bCwgcGFnZW5vKTsKIAkJCUxXTG9ja0FjcXVpcmUobG9jaywgTFdf RVhDTFVTSVZFKTsKLQkJCXNsb3RubyA9IFNpbXBsZUxydVJlYWRQYWdlKE5vdGlmeUN0bCwgcGFn ZW5vLCB0cnVlLAotCQkJCQkJCQkJICAgSW52YWxpZFRyYW5zYWN0aW9uSWQpOworCQkJc2xvdG5v ID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTm90aWZ5Q3RsLCBwYWdlbm8sIHRydWUsIE5VTEwpOwogCQkJ cGFnZV9idWZmZXIgPSBOb3RpZnlDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsKIAkJ CWN1cnBhZ2UgPSBwYWdlbm87CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv bG1nci9wcmVkaWNhdGUuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVkaWNhdGUuYwpp bmRleCBmZTc1ZWFkMzUwMS4uNjZlYjFjOWQ2YjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvbG1nci9wcmVkaWNhdGUuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJl ZGljYXRlLmMKQEAgLTgxMSw2ICs4MTEsNyBAQCBTZXJpYWxJbml0KHZvaWQpCiAJICogU2V0IHVw IFNMUlUgbWFuYWdlbWVudCBvZiB0aGUgcGdfc2VyaWFsIGRhdGEuCiAJICovCiAJU2VyaWFsU2xy dUN0bC0+UGFnZVByZWNlZGVzID0gU2VyaWFsUGFnZVByZWNlZGVzTG9naWNhbGx5OworCVNlcmlh bFNscnVDdGwtPmVycm1zZ19mb3JfaW9fZXJyb3IgPSB4YWN0X2Vycm1zZ19mb3JfaW9fZXJyb3I7 CiAJU2ltcGxlTHJ1SW5pdChTZXJpYWxTbHJ1Q3RsLCAic2VyaWFsaXphYmxlIiwKIAkJCQkgIHNl cmlhbGl6YWJsZV9idWZmZXJzLCAwLCAicGdfc2VyaWFsIiwKIAkJCQkgIExXVFJBTkNIRV9TRVJJ QUxfQlVGRkVSLCBMV1RSQU5DSEVfU0VSSUFMX1NMUlUsCkBAIC05MzAsNyArOTMxLDcgQEAgU2Vy aWFsQWRkKFRyYW5zYWN0aW9uSWQgeGlkLCBTZXJDb21taXRTZXFObyBtaW5Db25mbGljdENvbW1p dFNlcU5vKQogCWVsc2UKIAl7CiAJCUxXTG9ja0FjcXVpcmUobG9jaywgTFdfRVhDTFVTSVZFKTsK LQkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoU2VyaWFsU2xydUN0bCwgdGFyZ2V0UGFnZSwg dHJ1ZSwgeGlkKTsKKwkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoU2VyaWFsU2xydUN0bCwg dGFyZ2V0UGFnZSwgdHJ1ZSwgJnhpZCk7CiAJfQogCiAJU2VyaWFsVmFsdWUoc2xvdG5vLCB4aWQp ID0gbWluQ29uZmxpY3RDb21taXRTZXFObzsKQEAgLTk3NCw3ICs5NzUsNyBAQCBTZXJpYWxHZXRN aW5Db25mbGljdENvbW1pdFNlcU5vKFRyYW5zYWN0aW9uSWQgeGlkKQogCSAqIGJ1dCB3aWxsIHJl dHVybiB3aXRoIHRoYXQgbG9jayBoZWxkLCB3aGljaCBtdXN0IHRoZW4gYmUgcmVsZWFzZWQuCiAJ ICovCiAJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2VfUmVhZE9ubHkoU2VyaWFsU2xydUN0bCwK LQkJCQkJCQkJCQlTZXJpYWxQYWdlKHhpZCksIHhpZCk7CisJCQkJCQkJCQkJU2VyaWFsUGFnZSh4 aWQpLCAmeGlkKTsKIAl2YWwgPSBTZXJpYWxWYWx1ZShzbG90bm8sIHhpZCk7CiAJTFdMb2NrUmVs ZWFzZShTaW1wbGVMcnVHZXRCYW5rTG9jayhTZXJpYWxTbHJ1Q3RsLCBTZXJpYWxQYWdlKHhpZCkp KTsKIAlyZXR1cm4gdmFsOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmgKaW5kZXggNGNiOGY0NzhmY2UuLjFlMGJlYjI2NjI4 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oCisrKyBiL3NyYy9pbmNsdWRl L2FjY2Vzcy9zbHJ1LmgKQEAgLTEzLDYgKzEzLDcgQEAKICNpZm5kZWYgU0xSVV9ICiAjZGVmaW5l IFNMUlVfSAogCisjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJhY2Nlc3Mv eGxvZ2RlZnMuaCIKICNpbmNsdWRlICJzdG9yYWdlL2x3bG9jay5oIgogI2luY2x1ZGUgInN0b3Jh Z2Uvc3luYy5oIgpAQCAtMTQ2LDEwICsxNDcsMzEgQEAgdHlwZWRlZiBzdHJ1Y3QgU2xydUN0bERh dGEKIAkgKiBpdCdzIGFsd2F5cyB0aGUgc2FtZSwgaXQgZG9lc24ndCBuZWVkIHRvIGJlIGluIHNo YXJlZCBtZW1vcnkuCiAJICovCiAJY2hhcgkJRGlyWzY0XTsKKworCS8qCisJICogQ2FsbGJhY2sg Zm9yIGNyZWF0aW5nIGFuIEkvTyBlcnJvciBtZXNzYWdlLgorCSAqCisJICogVGhlIG9wYXF1ZV9k YXRhIGFyZ3VtZW50IGhlcmUgaXMgdGhlIHNhbWUgb25lIHRoYXQgaXMgcGFzc2VkIHRvIHRoZQor CSAqIFNpbXBsZUxydVJlYWRQYWdlKiBjYWxscy4KKwkgKi8KKwlpbnQJCQkoKmVycm1zZ19mb3Jf aW9fZXJyb3IpKGNvbnN0IHZvaWQgKm9wYXF1ZV9kYXRhKTsKIH0gU2xydUN0bERhdGE7CiAKIHR5 cGVkZWYgU2xydUN0bERhdGEgKlNscnVDdGw7CiAKKy8qCisgKiBIaXN0b3JpY2FsbHksIHRoaXMg bW9kdWxlIHdhcyBkZXNpZ25lZCBmb3IgaGFuZGxpbmcgdHJhbnNhY3Rpb24gSURzLAorICogdGhl cmVmb3JlIHRoaXMgaXMgdGhlIG1vc3QgY29tbW9uIHVzZSBjYXNlLiBUaHVzLCBtYWtlIGl0IHB1 YmxpY2x5IGF2YWlsYWJsZS4KKyAqLworc3RhdGljIGlubGluZSBpbnQKK3hhY3RfZXJybXNnX2Zv cl9pb19lcnJvcihjb25zdCB2b2lkICpvcGFxdWVfZGF0YSkKK3sKKwlUcmFuc2FjdGlvbklkIHhp ZCA9IG9wYXF1ZV9kYXRhID8gKCooVHJhbnNhY3Rpb25JZCAqKSBvcGFxdWVfZGF0YSkgOgorCQkJ CQkJCQkJICBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKworCXJldHVybiBlcnJtc2coImNvdWxkIG5v dCBhY2Nlc3Mgc3RhdHVzIG9mIHRyYW5zYWN0aW9uICV1IiwgeGlkKTsKK30KKwogLyoKICAqIEdl dCB0aGUgU0xSVSBiYW5rIGxvY2sgZm9yIGdpdmVuIFNscnVDdGwgYW5kIHRoZSBwYWdlbm8uCiAg KgpAQCAtMTc0LDkgKzE5Niw5IEBAIGV4dGVybiB2b2lkIFNpbXBsZUxydUluaXQoU2xydUN0bCBj dGwsIGNvbnN0IGNoYXIgKm5hbWUsIGludCBuc2xvdHMsIGludCBubHNucywKIGV4dGVybiBpbnQJ U2ltcGxlTHJ1WmVyb1BhZ2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2Vubyk7CiBleHRlcm4gdm9p ZCBTaW1wbGVMcnVaZXJvQW5kV3JpdGVQYWdlKFNscnVDdGwgY3RsLCBpbnQ2NCBwYWdlbm8pOwog ZXh0ZXJuIGludAlTaW1wbGVMcnVSZWFkUGFnZShTbHJ1Q3RsIGN0bCwgaW50NjQgcGFnZW5vLCBi b29sIHdyaXRlX29rLAotCQkJCQkJCSAgVHJhbnNhY3Rpb25JZCB4aWQpOworCQkJCQkJCSAgY29u c3Qgdm9pZCAqb3BhcXVlX2RhdGEpOwogZXh0ZXJuIGludAlTaW1wbGVMcnVSZWFkUGFnZV9SZWFk T25seShTbHJ1Q3RsIGN0bCwgaW50NjQgcGFnZW5vLAotCQkJCQkJCQkJICAgVHJhbnNhY3Rpb25J ZCB4aWQpOworCQkJCQkJCQkJICAgY29uc3Qgdm9pZCAqb3BhcXVlX2RhdGEpOwogZXh0ZXJuIHZv aWQgU2ltcGxlTHJ1V3JpdGVQYWdlKFNscnVDdGwgY3RsLCBpbnQgc2xvdG5vKTsKIGV4dGVybiB2 b2lkIFNpbXBsZUxydVdyaXRlQWxsKFNscnVDdGwgY3RsLCBib29sIGFsbG93X3JlZGlydGllZCk7 CiAjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0 X3NscnUuYwppbmRleCA0ZGM3NGUxOTYyMC4uYTE5MTI5YzM2NmIgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3Rlc3Rfc2xydS5jCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9zbHJ1L3Rlc3Rfc2xydS5jCkBAIC0xMDAsNyArMTAwLDcgQEAgdGVzdF9zbHJ1X3BhZ2Vf cmVhZChQR19GVU5DVElPTl9BUkdTKQogCS8qIGZpbmQgcGFnZSBpbiBidWZmZXJzLCByZWFkaW5n IGl0IGlmIG5lY2Vzc2FyeSAqLwogCUxXTG9ja0FjcXVpcmUobG9jaywgTFdfRVhDTFVTSVZFKTsK IAlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZShUZXN0U2xydUN0bCwgcGFnZW5vLAotCQkJCQkJ CSAgIHdyaXRlX29rLCBJbnZhbGlkVHJhbnNhY3Rpb25JZCk7CisJCQkJCQkJICAgd3JpdGVfb2ss IE5VTEwpOwogCWRhdGEgPSAoY2hhciAqKSBUZXN0U2xydUN0bC0+c2hhcmVkLT5wYWdlX2J1ZmZl cltzbG90bm9dOwogCUxXTG9ja1JlbGVhc2UobG9jayk7CiAKQEAgLTExOCw3ICsxMTgsNyBAQCB0 ZXN0X3NscnVfcGFnZV9yZWFkb25seShQR19GVU5DVElPTl9BUkdTKQogCS8qIGZpbmQgcGFnZSBp biBidWZmZXJzLCByZWFkaW5nIGl0IGlmIG5lY2Vzc2FyeSAqLwogCXNsb3RubyA9IFNpbXBsZUxy dVJlYWRQYWdlX1JlYWRPbmx5KFRlc3RTbHJ1Q3RsLAogCQkJCQkJCQkJCXBhZ2VubywKLQkJCQkJ CQkJCQlJbnZhbGlkVHJhbnNhY3Rpb25JZCk7CisJCQkJCQkJCQkJTlVMTCk7CiAJQXNzZXJ0KExX TG9ja0hlbGRCeU1lKGxvY2spKTsKIAlkYXRhID0gKGNoYXIgKikgVGVzdFNscnVDdGwtPnNoYXJl ZC0+cGFnZV9idWZmZXJbc2xvdG5vXTsKIAlMV0xvY2tSZWxlYXNlKGxvY2spOwpAQCAtMjQ1LDYg KzI0NSw3IEBAIHRlc3Rfc2xydV9zaG1lbV9zdGFydHVwKHZvaWQpCiAJfQogCiAJVGVzdFNscnVD dGwtPlBhZ2VQcmVjZWRlcyA9IHRlc3Rfc2xydV9wYWdlX3ByZWNlZGVzX2xvZ2ljYWxseTsKKwlU ZXN0U2xydUN0bC0+ZXJybXNnX2Zvcl9pb19lcnJvciA9IHhhY3RfZXJybXNnX2Zvcl9pb19lcnJv cjsKIAlTaW1wbGVMcnVJbml0KFRlc3RTbHJ1Q3RsLCAiVGVzdFNMUlUiLAogCQkJCSAgTlVNX1RF U1RfQlVGRkVSUywgMCwgc2xydV9kaXJfbmFtZSwKIAkJCQkgIHRlc3RfYnVmZmVyX3RyYW5jaGVf aWQsIHRlc3RfdHJhbmNoZV9pZCwgU1lOQ19IQU5ETEVSX05PTkUsCi0tIAoyLjQzLjAKCg== --0000000000005e306f064bbae7f1 Content-Type: application/octet-stream; name="v3-0002-Add-test-case-for-custom-SLRU-IO-error.patch" Content-Disposition: attachment; filename="v3-0002-Add-test-case-for-custom-SLRU-IO-error.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm3hxq8h1 RnJvbSBhODZkYjEwODhhMTA0ZDhlY2YyOWZjNWU3NjJmNTk0OWM1ZDJlNTdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjUgRmViIDIwMjYgMTc6NDg6NDIgKzAzMDAKU3ViamVjdDogW1BBVENIIHYzIDIvNV0g QWRkIHRlc3QgY2FzZSBmb3IgY3VzdG9tIFNMUlUgSU8gZXJyb3IKCi0tLQogc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X3NscnUvZXhwZWN0ZWQvdGVzdF9zbHJ1Lm91dCB8ICA3ICsrKysrKysKIHNyYy90 ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3NxbC90ZXN0X3NscnUuc3FsICAgICAgfCAgNCArKysrCiBz cmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3NscnUtLTEuMC5zcWwgICAgIHwgIDIgKy0K IHNyYy90ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3Rlc3Rfc2xydS5jICAgICAgICAgICAgfCAxNSAr KysrKysrKysrKysrLS0KIDQgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS9leHBlY3Rl ZC90ZXN0X3NscnUub3V0IGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvZXhwZWN0ZWQvdGVz dF9zbHJ1Lm91dAppbmRleCAxODVjNTZlNWQ2Mi4uMGRkYTZiNjBmMGIgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L2V4cGVjdGVkL3Rlc3Rfc2xydS5vdXQKKysrIGIvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvZXhwZWN0ZWQvdGVzdF9zbHJ1Lm91dApAQCAtMjMsNiAr MjMsMTMgQEAgU0VMRUNUIHRlc3Rfc2xydV9wYWdlX2V4aXN0cygxMjM0NSk7CiAgdAogKDEgcm93 KQogCistLSBzaG91bGQgZmFpbCB3aXRoIGN1c3RvbSBlcnJvciBtc2cKK1NFTEVDVCB0ZXN0X3Ns cnVfcGFnZV9yZWFkKDU0MzIxKTsKK0VSUk9SOiAgY291bGQgbm90IGFjY2VzcyB0ZXN0X3NscnUg ZW50cnkKK0RFVEFJTDogIENvdWxkIG5vdCBvcGVuIGZpbGUgInBnX3Rlc3Rfc2xydS8wMDAwMDAw MDAwMDA2QTEiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5LgorU0VMRUNUIHRlc3Rfc2xydV9w YWdlX3JlYWQoNTQzMjEsIGZhbHNlLCAnMTIzJzo6eGlkKTsKK0VSUk9SOiAgY291bGQgbm90IGFj Y2VzcyB0ZXN0X3NscnUgZW50cnkgMTIzCitERVRBSUw6ICBDb3VsZCBub3Qgb3BlbiBmaWxlICJw Z190ZXN0X3NscnUvMDAwMDAwMDAwMDAwNkExIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeS4K IC0tIDQ4IGV4dHJhIHBhZ2VzCiBTRUxFQ1QgY291bnQodGVzdF9zbHJ1X3BhZ2Vfd3JpdGUoYSwg J1Rlc3QgU0xSVScpKQogICBGUk9NIGdlbmVyYXRlX3NlcmllcygxMjM0NiwgMTIzOTMsIDEpIGFz IGE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS9zcWwvdGVzdF9zbHJ1 LnNxbCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3NxbC90ZXN0X3NscnUuc3FsCmluZGV4 IGIxYjM3NjU4MWFiLi40ZjY2ZjQyMDdiNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy90 ZXN0X3NscnUvc3FsL3Rlc3Rfc2xydS5zcWwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3Ns cnUvc3FsL3Rlc3Rfc2xydS5zcWwKQEAgLTUsNiArNSwxMCBAQCBTRUxFQ1QgdGVzdF9zbHJ1X3Bh Z2Vfd3JpdGUoMTIzNDUsICdUZXN0IFNMUlUnKTsKIFNFTEVDVCB0ZXN0X3NscnVfcGFnZV9yZWFk KDEyMzQ1KTsKIFNFTEVDVCB0ZXN0X3NscnVfcGFnZV9leGlzdHMoMTIzNDUpOwogCistLSBzaG91 bGQgZmFpbCB3aXRoIGN1c3RvbSBlcnJvciBtc2cKK1NFTEVDVCB0ZXN0X3NscnVfcGFnZV9yZWFk KDU0MzIxKTsKK1NFTEVDVCB0ZXN0X3NscnVfcGFnZV9yZWFkKDU0MzIxLCBmYWxzZSwgJzEyMyc6 OnhpZCk7CisKIC0tIDQ4IGV4dHJhIHBhZ2VzCiBTRUxFQ1QgY291bnQodGVzdF9zbHJ1X3BhZ2Vf d3JpdGUoYSwgJ1Rlc3QgU0xSVScpKQogICBGUk9NIGdlbmVyYXRlX3NlcmllcygxMjM0NiwgMTIz OTMsIDEpIGFzIGE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0 X3NscnUtLTEuMC5zcWwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3NscnUtLTEu MC5zcWwKaW5kZXggYWJlY2I1ZTIxODMuLjIyZjRmNjRiOTg4IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3NscnUtLTEuMC5zcWwKKysrIGIvc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X3NscnUvdGVzdF9zbHJ1LS0xLjAuc3FsCkBAIC03LDcgKzcsNyBAQCBDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0X3NscnVfcGFnZV93cml0ZWFsbCgpIFJFVFVSTlMgVk9J RAogICBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ3Rlc3Rfc2xydV9wYWdlX3dyaXRlYWxsJyBMQU5H VUFHRSBDOwogQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdGVzdF9zbHJ1X3BhZ2Vfc3luYyhi aWdpbnQpIFJFVFVSTlMgVk9JRAogICBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ3Rlc3Rfc2xydV9w YWdlX3N5bmMnIExBTkdVQUdFIEM7Ci1DUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0X3Ns cnVfcGFnZV9yZWFkKGJpZ2ludCwgYm9vbCBERUZBVUxUIHRydWUpIFJFVFVSTlMgdGV4dAorQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdGVzdF9zbHJ1X3BhZ2VfcmVhZChiaWdpbnQsIGJvb2wg REVGQVVMVCB0cnVlLCB4aWQgREVGQVVMVCBOVUxMKSBSRVRVUk5TIHRleHQKICAgQVMgJ01PRFVM RV9QQVRITkFNRScsICd0ZXN0X3NscnVfcGFnZV9yZWFkJyBMQU5HVUFHRSBDOwogQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gdGVzdF9zbHJ1X3BhZ2VfcmVhZG9ubHkoYmlnaW50KSBSRVRVUk5T IHRleHQKICAgQVMgJ01PRFVMRV9QQVRITkFNRScsICd0ZXN0X3NscnVfcGFnZV9yZWFkb25seScg TEFOR1VBR0UgQzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3Rlc3Rf c2xydS5jIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMKaW5kZXggYTE5 MTI5YzM2NmIuLjllY2Y3NDg4MmZmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf c2xydS90ZXN0X3NscnUuYworKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90ZXN0X3Ns cnUuYwpAQCAtOTMsNiArOTMsNyBAQCB0ZXN0X3NscnVfcGFnZV9yZWFkKFBHX0ZVTkNUSU9OX0FS R1MpCiB7CiAJaW50NjQJCXBhZ2VubyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAlib29sCQl3cml0 ZV9vayA9IFBHX0dFVEFSR19CT09MKDEpOworCVRyYW5zYWN0aW9uSWQgeGlkID0gUEdfR0VUQVJH X1RSQU5TQUNUSU9OSUQoMik7CiAJY2hhcgkgICAqZGF0YSA9IE5VTEw7CiAJaW50CQkJc2xvdG5v OwogCUxXTG9jawkgICAqbG9jayA9IFNpbXBsZUxydUdldEJhbmtMb2NrKFRlc3RTbHJ1Q3RsLCBw YWdlbm8pOwpAQCAtMTAwLDcgKzEwMSw3IEBAIHRlc3Rfc2xydV9wYWdlX3JlYWQoUEdfRlVOQ1RJ T05fQVJHUykKIAkvKiBmaW5kIHBhZ2UgaW4gYnVmZmVycywgcmVhZGluZyBpdCBpZiBuZWNlc3Nh cnkgKi8KIAlMV0xvY2tBY3F1aXJlKGxvY2ssIExXX0VYQ0xVU0lWRSk7CiAJc2xvdG5vID0gU2lt cGxlTHJ1UmVhZFBhZ2UoVGVzdFNscnVDdGwsIHBhZ2VubywKLQkJCQkJCQkgICB3cml0ZV9vaywg TlVMTCk7CisJCQkJCQkJICAgd3JpdGVfb2ssIFBHX0FSR0lTTlVMTCgyKSA/IE5VTEwgOiAmeGlk KTsKIAlkYXRhID0gKGNoYXIgKikgVGVzdFNscnVDdGwtPnNoYXJlZC0+cGFnZV9idWZmZXJbc2xv dG5vXTsKIAlMV0xvY2tSZWxlYXNlKGxvY2spOwogCkBAIC0yMTAsNiArMjExLDE2IEBAIHRlc3Rf c2xydV9wYWdlX3ByZWNlZGVzX2xvZ2ljYWxseShpbnQ2NCBwYWdlMSwgaW50NjQgcGFnZTIpCiAJ cmV0dXJuIHBhZ2UxIDwgcGFnZTI7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50Cit0ZXN0X3NscnVf ZXJybXNnX2Zvcl9pb19lcnJvcihjb25zdCB2b2lkICpvcGFxdWVfZGF0YSkKK3sKKwlpZiAob3Bh cXVlX2RhdGEpCisJCXJldHVybiBlcnJtc2coImNvdWxkIG5vdCBhY2Nlc3MgdGVzdF9zbHJ1IGVu dHJ5ICV1IiwKKwkJCQkJCSooVHJhbnNhY3Rpb25JZCAqKSBvcGFxdWVfZGF0YSk7CisKKwlyZXR1 cm4gZXJybXNnKCJjb3VsZCBub3QgYWNjZXNzIHRlc3Rfc2xydSBlbnRyeSIpOworfQorCiBzdGF0 aWMgdm9pZAogdGVzdF9zbHJ1X3NobWVtX3N0YXJ0dXAodm9pZCkKIHsKQEAgLTI0NSw3ICsyNTYs NyBAQCB0ZXN0X3NscnVfc2htZW1fc3RhcnR1cCh2b2lkKQogCX0KIAogCVRlc3RTbHJ1Q3RsLT5Q YWdlUHJlY2VkZXMgPSB0ZXN0X3NscnVfcGFnZV9wcmVjZWRlc19sb2dpY2FsbHk7Ci0JVGVzdFNs cnVDdGwtPmVycm1zZ19mb3JfaW9fZXJyb3IgPSB4YWN0X2Vycm1zZ19mb3JfaW9fZXJyb3I7CisJ VGVzdFNscnVDdGwtPmVycm1zZ19mb3JfaW9fZXJyb3IgPSB0ZXN0X3NscnVfZXJybXNnX2Zvcl9p b19lcnJvcjsKIAlTaW1wbGVMcnVJbml0KFRlc3RTbHJ1Q3RsLCAiVGVzdFNMUlUiLAogCQkJCSAg TlVNX1RFU1RfQlVGRkVSUywgMCwgc2xydV9kaXJfbmFtZSwKIAkJCQkgIHRlc3RfYnVmZmVyX3Ry YW5jaGVfaWQsIHRlc3RfdHJhbmNoZV9pZCwgU1lOQ19IQU5ETEVSX05PTkUsCi0tIAoyLjQzLjAK Cg== --0000000000005e306f064bbae7f1 Content-Type: application/octet-stream; name="v3-0004-Use-custom-SLRU-IO-error-msg-for-multixact.patch" Content-Disposition: attachment; filename="v3-0004-Use-custom-SLRU-IO-error-msg-for-multixact.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm3hxq8u3 RnJvbSBiOTRiMmMxN2UwN2U1YjljOGRmMTUxMGRhMGY2ODdjYTJiNTJhNWMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjUgRmViIDIwMjYgMTg6MjA6MDEgKzAzMDAKU3ViamVjdDogW1BBVENIIHYzIDQvNV0g VXNlIGN1c3RvbSBTTFJVIElPIGVycm9yIG1zZyBmb3IgbXVsdGl4YWN0CgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIHwgMzYgKysrKysrKysrKysrKysrKysrKysr KystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVsdGl4YWN0LmMKaW5kZXggODE2ZmI1MGZhNGIuLmI3 OGNkNWZlNDFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhh Y3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYwpAQCAtMjc3 LDYgKzI3Nyw4IEBAIHN0YXRpYyB2b2lkIG1YYWN0Q2FjaGVQdXQoTXVsdGlYYWN0SWQgbXVsdGks IGludCBubWVtYmVycywKIC8qIG1hbmFnZW1lbnQgb2YgU0xSVSBpbmZyYXN0cnVjdHVyZSAqLwog c3RhdGljIGJvb2wgTXVsdGlYYWN0T2Zmc2V0UGFnZVByZWNlZGVzKGludDY0IHBhZ2UxLCBpbnQ2 NCBwYWdlMik7CiBzdGF0aWMgYm9vbCBNdWx0aVhhY3RNZW1iZXJQYWdlUHJlY2VkZXMoaW50NjQg cGFnZTEsIGludDY0IHBhZ2UyKTsKK3N0YXRpYyBpbmxpbmUgaW50IE11bHRpWGFjdE9mZnNldElv RXJyb3JNc2coY29uc3Qgdm9pZCAqb3BhcXVlX2RhdGEpOworc3RhdGljIGlubGluZSBpbnQgTXVs dGlYYWN0TWVtYmVySW9FcnJvck1zZyhjb25zdCB2b2lkICpvcGFxdWVfZGF0YSk7CiBzdGF0aWMg dm9pZCBFeHRlbmRNdWx0aVhhY3RPZmZzZXQoTXVsdGlYYWN0SWQgbXVsdGkpOwogc3RhdGljIHZv aWQgRXh0ZW5kTXVsdGlYYWN0TWVtYmVyKE11bHRpWGFjdE9mZnNldCBvZmZzZXQsIGludCBubWVt YmVycyk7CiBzdGF0aWMgdm9pZCBTZXRPbGRlc3RPZmZzZXQodm9pZCk7CkBAIC04ODEsNyArODgz LDggQEAgUmVjb3JkTmV3TXVsdGlYYWN0KE11bHRpWGFjdElkIG11bHRpLCBNdWx0aVhhY3RPZmZz ZXQgb2Zmc2V0LAogCQkJCUxXTG9ja0FjcXVpcmUobG9jaywgTFdfRVhDTFVTSVZFKTsKIAkJCQlw cmV2bG9jayA9IGxvY2s7CiAJCQl9Ci0JCQlzbG90bm8gPSBTaW1wbGVMcnVSZWFkUGFnZShNdWx0 aVhhY3RNZW1iZXJDdGwsIHBhZ2VubywgdHJ1ZSwgJm11bHRpKTsKKwkJCXNsb3RubyA9IFNpbXBs ZUxydVJlYWRQYWdlKE11bHRpWGFjdE1lbWJlckN0bCwgcGFnZW5vLCB0cnVlLAorCQkJCQkJCQkJ ICAgJm9mZnNldCk7CiAJCQlwcmV2X3BhZ2VubyA9IHBhZ2VubzsKIAkJfQogCkBAIC0xMzA5LDcg KzEzMTIsOCBAQCBHZXRNdWx0aVhhY3RJZE1lbWJlcnMoTXVsdGlYYWN0SWQgbXVsdGksIE11bHRp WGFjdE1lbWJlciAqKm1lbWJlcnMsCiAJCQkJbG9jayA9IG5ld2xvY2s7CiAJCQl9CiAKLQkJCXNs b3RubyA9IFNpbXBsZUxydVJlYWRQYWdlKE11bHRpWGFjdE1lbWJlckN0bCwgcGFnZW5vLCB0cnVl LCAmbXVsdGkpOworCQkJc2xvdG5vID0gU2ltcGxlTHJ1UmVhZFBhZ2UoTXVsdGlYYWN0TWVtYmVy Q3RsLCBwYWdlbm8sIHRydWUsCisJCQkJCQkJCQkgICAmb2Zmc2V0KTsKIAkJCXByZXZfcGFnZW5v ID0gcGFnZW5vOwogCQl9CiAKQEAgLTE3MzAsOCArMTczNCw4IEBAIE11bHRpWGFjdFNobWVtSW5p dCh2b2lkKQogCU11bHRpWGFjdE9mZnNldEN0bC0+UGFnZVByZWNlZGVzID0gTXVsdGlYYWN0T2Zm c2V0UGFnZVByZWNlZGVzOwogCU11bHRpWGFjdE1lbWJlckN0bC0+UGFnZVByZWNlZGVzID0gTXVs dGlYYWN0TWVtYmVyUGFnZVByZWNlZGVzOwogCi0JTXVsdGlYYWN0T2Zmc2V0Q3RsLT5lcnJtc2df Zm9yX2lvX2Vycm9yID0geGFjdF9lcnJtc2dfZm9yX2lvX2Vycm9yOwotCU11bHRpWGFjdE1lbWJl ckN0bC0+ZXJybXNnX2Zvcl9pb19lcnJvciA9IHhhY3RfZXJybXNnX2Zvcl9pb19lcnJvcjsKKwlN dWx0aVhhY3RPZmZzZXRDdGwtPmVycm1zZ19mb3JfaW9fZXJyb3IgPSBNdWx0aVhhY3RPZmZzZXRJ b0Vycm9yTXNnOworCU11bHRpWGFjdE1lbWJlckN0bC0+ZXJybXNnX2Zvcl9pb19lcnJvciA9IE11 bHRpWGFjdE1lbWJlcklvRXJyb3JNc2c7CiAKIAlTaW1wbGVMcnVJbml0KE11bHRpWGFjdE9mZnNl dEN0bCwKIAkJCQkgICJtdWx0aXhhY3Rfb2Zmc2V0IiwgbXVsdGl4YWN0X29mZnNldF9idWZmZXJz LCAwLApAQCAtMjc1OCw2ICsyNzYyLDMwIEBAIE11bHRpWGFjdE1lbWJlclBhZ2VQcmVjZWRlcyhp bnQ2NCBwYWdlMSwgaW50NjQgcGFnZTIpCiAJcmV0dXJuIHBhZ2UxIDwgcGFnZTI7CiB9CiAKKy8q CisgKiBDdXN0b20gSU8gZXJybXNnIGZvciBNdWx0aVhhY3RPZmZzZXQuCisgKi8KK3N0YXRpYyBp bmxpbmUgaW50CitNdWx0aVhhY3RPZmZzZXRJb0Vycm9yTXNnKGNvbnN0IHZvaWQgKm9wYXF1ZV9k YXRhKQoreworCUFzc2VydChvcGFxdWVfZGF0YSAhPSBOVUxMKTsKKworCXJldHVybiBlcnJtc2co ImNvdWxkIG5vdCBhY2Nlc3Mgc3RhdHVzIG9mIG11bHRpeGFjdCBvZmZzZXQgJXUiLAorCQkJCSAg KihNdWx0aVhhY3RJZCAqKSBvcGFxdWVfZGF0YSk7Cit9CisKKy8qCisgKiBDdXN0b20gSU8gZXJy bXNnIGZvciBNdWx0aVhhY3RNZW1iZXIuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50CitNdWx0aVhh Y3RNZW1iZXJJb0Vycm9yTXNnKGNvbnN0IHZvaWQgKm9wYXF1ZV9kYXRhKQoreworCUFzc2VydChv cGFxdWVfZGF0YSAhPSBOVUxMKTsKKworCXJldHVybiBlcnJtc2coImNvdWxkIG5vdCBhY2Nlc3Mg c3RhdHVzIG9mIG11bHRpeGFjdCBtZW1iZXIgJSIgUFJJdTY0LAorCQkJCSAgKihNdWx0aVhhY3RP ZmZzZXQgKikgb3BhcXVlX2RhdGEpOworfQorCiAvKgogICogRGVjaWRlIHdoaWNoIG9mIHR3byBN dWx0aVhhY3RJZHMgaXMgZWFybGllci4KICAqCi0tIAoyLjQzLjAKCg== --0000000000005e306f064bbae7f1 Content-Type: application/octet-stream; name="v3-0006-Expand-xact-SLRU-IO-error-to-show-epoch.patch" Content-Disposition: attachment; filename="v3-0006-Expand-xact-SLRU-IO-error-to-show-epoch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm3j46575 RnJvbSAwOTI5OTk5NDgwY2JjZjkwMTY4MWMzNGJmM2Q3YzE4YWUxYzgyYWNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBPcmxvdiA8b3Jsb3ZtZ0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgMjYgRmViIDIwMjYgMTY6NTU6NDUgKzAzMDAKU3ViamVjdDogW1BBVENIIHYzIDYvNl0g RXhwYW5kIHhhY3QgU0xSVSBJTy1lcnJvciB0byBzaG93IGVwb2NoCgotLS0KIHNyYy9pbmNsdWRl L2FjY2Vzcy9zbHJ1LmggfCAxMiArKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9zbHJ1LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oCmluZGV4IDc4ZWUzNmMwNWE2Li4z Y2EyZTRlOTJmNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NscnUuaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oCkBAIC0xNjcsOCArMTY3LDE2IEBAIHN0YXRpYyBpbmxp bmUgaW50CiB4YWN0X2Vycm1zZ19mb3JfaW9fZXJyb3IoY29uc3Qgdm9pZCAqb3BhcXVlX2RhdGEp CiB7CiAJaWYgKG9wYXF1ZV9kYXRhKQotCQlyZXR1cm4gZXJybXNnKCJjb3VsZCBub3QgYWNjZXNz IHN0YXR1cyBvZiB0cmFuc2FjdGlvbiAldSIsCi0JCQkJCSAgKihUcmFuc2FjdGlvbklkICopIG9w YXF1ZV9kYXRhKTsKKwl7CisJCUZ1bGxUcmFuc2FjdGlvbklkCWZ4aWQ7CisKKwkJZnhpZCA9IEZ1 bGxUcmFuc2FjdGlvbklkRnJvbUFsbG93YWJsZUF0KFJlYWROZXh0RnVsbFRyYW5zYWN0aW9uSWQo KSwKKwkJCQkJCQkJCQkJCSooVHJhbnNhY3Rpb25JZCAqKSBvcGFxdWVfZGF0YSk7CisKKwkJcmV0 dXJuIGVycm1zZygiY291bGQgbm90IGFjY2VzcyBzdGF0dXMgb2YgdHJhbnNhY3Rpb24gJXU6JXUi LAorCQkJCQkgIEVwb2NoRnJvbUZ1bGxUcmFuc2FjdGlvbklkKGZ4aWQpLAorCQkJCQkgIFhpZEZy b21GdWxsVHJhbnNhY3Rpb25JZChmeGlkKSk7CisJfQogCiAJcmV0dXJuIGVycm1zZygiY291bGQg bm90IGFjY2VzcyBzbHJ1IGVudHJ5Iik7CS8qIEludmFsaWRUcmFuc2FjdGlvbklkICovCiB9Ci0t IAoyLjQzLjAKCg== --0000000000005e306f064bbae7f1--