From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A2A30D42B85 for ; Tue, 12 Nov 2024 14:43:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 322436B00E3; Tue, 12 Nov 2024 09:43:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2AA106B00E7; Tue, 12 Nov 2024 09:43:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 14BD06B00E8; Tue, 12 Nov 2024 09:43:09 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id E78B06B00E3 for ; Tue, 12 Nov 2024 09:43:08 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 6733E1A0220 for ; Tue, 12 Nov 2024 14:43:08 +0000 (UTC) X-FDA: 82777709238.22.DDCDE7C Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) by imf02.hostedemail.com (Postfix) with ESMTP id 94BFC80021 for ; Tue, 12 Nov 2024 14:41:47 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ZK9r0BLg; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of amir73il@gmail.com designates 209.85.219.45 as permitted sender) smtp.mailfrom=amir73il@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731422524; a=rsa-sha256; cv=none; b=KCMhA+hqaH3ZsMv6dSRqpDp7YyP0BqIU2e9WVi1ACJjR0QUS91RyvuUAjWu8IKXGhTcU+P Ke8lE2nCLWLV7dhP8GSs8xbWmCC3QgFfwKg+wesD3c+rcyDG4KUiOsBarcUFRPdAW0Cv+Z zvPAZ5e7aMv4GolFUwAmgJCp9x9gE2Q= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ZK9r0BLg; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf02.hostedemail.com: domain of amir73il@gmail.com designates 209.85.219.45 as permitted sender) smtp.mailfrom=amir73il@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731422524; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=pJitszLJDg3VwSrulTOUYyc6BMdqCAbB6MWmGHGc2b0=; b=DHRMTTggh4Jr9MdYHY4f7FF95THMADexTkxw8YHNCTFRT68+wsISBMhwI7guxNtpswylU6 jPM4Kz0P6Ph466JG9kOpa5rskao0FU60K09+e8wXDHGGw8JgVr6cog5RRqRyJh17xEhdZE uhaFvVCkfN8g5fYrroq0y79tDgm1AO8= Received: by mail-qv1-f45.google.com with SMTP id 6a1803df08f44-6cbcc2bd7fcso39057716d6.1 for ; Tue, 12 Nov 2024 06:43:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1731422586; x=1732027386; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=pJitszLJDg3VwSrulTOUYyc6BMdqCAbB6MWmGHGc2b0=; b=ZK9r0BLgK3q94y08qvzSo1ExhHzNGbt44PJepWOojKnRe2LnQYjp3zy3IHuMzSGx/X RdpyAC1K9rNOd5Eqt68WLgIOKYZjFU/dB4eNb0UpZL+85NwP+67qpa0rZSUohCiuT3kH L0Y2RiIa8GbYsuPROyGUylz8oanuSE7DzTcC5ywCc5RDUnxL5IhfPMK1oPdMg+IGcuMU ozyrbJ6/gtqSz4ZyNOdZfgxFRC8Bg46bCCzsFDR7Ov8GfCsVRcdWflZjrvxImRKy3HOY LuVARZRq/9TJ2PuzYdVYMSdpzkncQTSh1t9kZ7phyUoudV+XqLY5ku3BJsTZ2WhV2R5K 9aWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731422586; x=1732027386; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pJitszLJDg3VwSrulTOUYyc6BMdqCAbB6MWmGHGc2b0=; b=tvZb7r2VyoqOmZWsbo/ZcYPFVyfgKFWJdreEEtUNJAhpH1fig9qGQkKOLt+j30n6d+ i8+CN9gMrmvJhgIYSTT5V2EX8qJfr+FFdYxnwzUnjGdu/+oNtKlbYV9h9tH7+Q7uprAP ghev6R+OgSSbPHFWTxSOOywMGbn1hpPWBFNIz+4Dbl7lAjzqGdivuMGpBzTAisjGWn4R 5Vkvc51oxHq4oh4Ez5Bs6C4hKSBP+seb+xwoQ/5MK195rNSGPA7u7tIMyZ4Z4Ga5LogG ZD/Tl1aiHyLRrTEK5LGmqbC3nD5ol0HTjAHkfC2SPjaQjhyHKA4ztyCyLN8iFKzMI6gN hv8Q== X-Forwarded-Encrypted: i=1; AJvYcCWodCoe0o0/RkSYp/DG8nX/AobP75ANqVb5fqsRBbf6/D1TJ2O48a2UgF5tYkug3VJRaCqKpHPp5A==@kvack.org X-Gm-Message-State: AOJu0YwpGASS3WeemPTOxrtHxTvVtAtrtGDzyzoGsvHpJdr868hrA91M hqLLcbuUJoyL2HPhx59I/Qvmv309EjeejQs5CEFYmDUJoiu6ZTwX5ppKBpgBVHyrYdhrNBIxO15 zr3CUuP8Ij+GLTzY77VVnaIN6U1Q= X-Google-Smtp-Source: AGHT+IHsEbdNRX2EeabFHLNPiKKT4tbxGfpFRPEv0WvCJKomF8HYSNpQhaRbhjSeBcbJAKgMvEpxWFBpgcQI7gZI5is= X-Received: by 2002:a0c:f413:0:b0:6cb:fbb1:d1ba with SMTP id 6a1803df08f44-6d39e107822mr203778346d6.9.1731422585638; Tue, 12 Nov 2024 06:43:05 -0800 (PST) MIME-Version: 1.0 References: <20241112135457.zxzhtoe537gapkmu@quack3> In-Reply-To: <20241112135457.zxzhtoe537gapkmu@quack3> From: Amir Goldstein Date: Tue, 12 Nov 2024 15:42:54 +0100 Message-ID: Subject: Re: [PATCH v6 06/17] fsnotify: generate pre-content permission event on open To: Jan Kara Cc: Linus Torvalds , Josef Bacik , kernel-team@fb.com, linux-fsdevel@vger.kernel.org, brauner@kernel.org, linux-xfs@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-mm@kvack.org, linux-ext4@vger.kernel.org, kernel test robot Content-Type: multipart/mixed; boundary="0000000000002c97f80626b83cf0" X-Rspam-User: X-Rspamd-Queue-Id: 94BFC80021 X-Rspamd-Server: rspam11 X-Stat-Signature: 75kpasncigm6rbq3icsx7eypng3roi9x X-HE-Tag: 1731422507-780209 X-HE-Meta: U2FsdGVkX1/jWLVk/el82XSg8GsqF5FobC92b+DTDrsFh4XFmceGToLws9RmaFFYiGQqpun+qGTMqt5RsjimAPpLL7Bcgqqrk7KPOqEowF5dnl4PW6egtPoRZ7uoXAdRV5VEGxZxs86joTJLpGKYF0fFo+8Lh3blygno2Daq+y84mxfs5LCJOX+MP03O8EgKwj+9eyY+mVmkCmOdiSN3QCQNzUMvA4YRp92K73G0mqndJwbAc1kpNVQr5H7Y0YEdET80FdXBpNFX9gDu9s+bfH+HSJqT7LwO3H14yAD0FiJbB2V+K0gL2SzCCMTZDy7aFlwtjjOd5qLRthDVfBb1oL0LkcqzL/zKcmpbrwxCBvGvDJ6XZQRGTIYHBzmOhsByBXPHiXwcCevMkrl2tOU82Q0W1Nsx3CscTUkRkGwQERCtU3yE5Cx2pVqfJwQQpBNCdz895/Dlvo9WtSHpiW0tnnBAM//isfJZ9DqeB7AmkGsaLYYST8WZ5MaxXv2kVtITay5iDAih13P9A4XPrlorphImolM1susTKYyu2TLr3NhSOsjsjh1wGpqL8ecwU1/pnGt90cIHD1mF0zK2hE5y7ueyw4BgW6w9jv7NNwmp/rel6Gj2eGMuJNJ/WQ1TX6g8h6hq6viGjyplmrHS9GWU8tn7YfmRB5SuYrtQ6I0MRHea6tbBat0sy0crtQPmpYopAWOKt0HECdUU8f+eBUSonJETyzKrNeA5EgQEMYUdLjAiKdImdhpYQqjuH8F5icSfPRqxm82VYa2YQa87AFlNwgPH5m4Enlukat/1sroZxQoDZJqCnsj2VW8HRjAIHbwRLIIhzpmyYeRuExXQnO6vD5hBZPvmWGhpY4SHL5topCDKBn5sBLrDMt3zL3tSSij6r4Kz4mq3RrLlZ5+5nEOeNtFE0y/L6VH/hnZlcPG0BnNcuv6kzERO+JDRcI4tk7xVvg1G5jDrHr7jNETEEmR 00sxnD++ jJTBs7kDHWStUCwXzQvvq0R0iaPllltK7gLUwj9BQnABJKb8JQ0xmRaMjoQLqnqaFVMvgo0ooqvAvhg7yi18Kk/WcCDoIA6rdmiNNd8GwjHq9hxIr/e++hrBYAKPtByi5xrPIq+ToBTuZ0DD8L1YccKLas24RI4GcclBsS3TNy7Pu/cLfmIITnRsk9Sayq59qrqzudpZmgfb0iOfwebeoFNF4erhrPppy0XeJi2GalmD0G4g9KBKJJNANb6dMGwWSvA8agJ2BaufbaEBTX+K0jggyyi7Rl64kLwKW5cwHkIeG31ggFMDOrYzGw7ruowbLs5PMf4voPRrIWZ7TFKZ/sCJnCzzWoGfuN3mKxnBF6bdilUZaO7gh4f023vU5RMwoaFWBeYt/lmcSvXseyw+KzpEXudMVcwgOT+yABafG54A4QRhal0ZyBB3ZG5KhFUisGuOTZVQJO6Zd3AKn9e1G72G9Br0sn+cAdHoZhlImXaomAbmvOrhOwWrjvhspyBC2SeenOXaV70aVYJmVoJ/l66iDOXP+wT0uB4eE1zg4bIOYxoFSqV8/q5aR3aV4Kk5tPhoOcf+ZHKVyd39FDpFOfaNxUmlQ0Vt6/mdTdWOr/hKTv6cPS4ZEGL76LPjVuvw+Z3AAOo8wApBcpIAL9R690Cv+xw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: --0000000000002c97f80626b83cf0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Nov 12, 2024 at 2:55=E2=80=AFPM Jan Kara wrote: > > On Tue 12-11-24 09:11:32, Amir Goldstein wrote: > > On Tue, Nov 12, 2024 at 1:37=E2=80=AFAM Linus Torvalds > > wrote: > > > On Mon, 11 Nov 2024 at 16:00, Amir Goldstein wro= te: > > > > > > > > I think that's a good idea for pre-content events, because it's fin= e > > > > to say that if the sb/mount was not watched by a pre-content event = listener > > > > at the time of file open, then we do not care. > > > > > > Right. > > > > > > > The problem is that legacy inotify/fanotify watches can be added af= ter > > > > file is open, so that is allegedly why this optimization was not do= ne for > > > > fsnotify hooks in the past. > > > > > > So honestly, even if the legacy fsnotify hooks can't look at the file > > > flag, they could damn well look at an inode flag. > > > > Legacy fanotify has a mount watch (FAN_MARK_MOUNT), > > which is the common way for Anti-malware to set watches on > > filesystems, so I am not sure what you are saying. > > > > > And I'm not even convinced that we couldn't fix them to just look at = a > > > file flag, and say "tough luck, somebody opened that file before you > > > started watching, you don't get to see what they did". > > > > That would specifically break tail -f (for inotify) and probably many o= ther > > tools, but as long as we also look at the inode flags (i_fsnotify_mask) > > and the dentry flags (DCACHE_FSNOTIFY_PARENT_WATCHED), > > then I think we may be able to get away with changing the semantics > > for open files on a fanotify mount watch. > > Yes, I agree we cannot afford to generate FS_MODIFY event only if the mar= k > was placed after file open. There's too much stuff in userspace depending > on this since this behavior dates back to inotify interface sometime in > 2010 or so. > > > Specifically, I would really like to eliminate completely the cost of > > FAN_ACCESS_PERM event, which could be gated on file flag, because > > this is only for security/Anti-malware and I don't think this event is > > practically > > useful and it sure does not need to guarantee permission events to moun= t > > watchers on already open files. > > For traditional fanotify permission events I agree generating them only i= f > the mark was placed before open is likely fine but we'll have to try and > see whether something breaks. For the new pre-content events I like the > per-file flag as Linus suggested. That should indeed save us some cache > misses in some fast paths. FWIW, attached a patch that implements FMODE_NOTIFY_PERM I have asked Oliver to run his performance tests to see if we can observe an improvement with existing workloads, but is sure is going to be useful for pre-content events. For example, here is what the pre content helper looks like after I adapted Josef's patches to use the flag: static inline bool fsnotify_file_has_pre_content_watches(struct file *file) { if (!(file->f_mode & FMODE_NOTIFY_PERM)) return false; if (!(file_inode(file)->i_sb->s_iflags & SB_I_ALLOW_HSM)) return false; return fsnotify_file_object_watched(file, FSNOTIFY_PRE_CONTENT_EVEN= TS); } Thanks, Amir. --0000000000002c97f80626b83cf0 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-fsnotify-opt-in-for-permission-events-at-file_open_p.patch" Content-Disposition: attachment; filename="0001-fsnotify-opt-in-for-permission-events-at-file_open_p.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3ek7wxp0 RnJvbSA4YzhlOTQ1MmQxNTNhMTkxODQ3MGNiZTUyYThlYjY1MDVjNjc1OTExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbWlyIEdvbGRzdGVpbiA8YW1pcjczaWxAZ21haWwuY29tPgpE YXRlOiBUdWUsIDEyIE5vdiAyMDI0IDEzOjQ2OjA4ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gZnNu b3RpZnk6IG9wdC1pbiBmb3IgcGVybWlzc2lvbiBldmVudHMgYXQgZmlsZV9vcGVuX3Blcm0oKQog dGltZQoKTGVnYWN5IGlub3RpZnkvZmFub3RpZnkgbGlzdGVuZXJzIGNhbiBhZGQgd2F0Y2hlcyBm b3IgZXZlbnRzIG9uIGlub2RlLApwYXJlbnQgb3IgbW91bnQgYW5kIGV4cGVjdCB0byBnZXQgZXZl bnRzIChlLmcuIEZTX01PRElGWSkgb24gZmlsZXMgdGhhdAp3ZXJlIGFscmVhZHkgb3BlbiBhdCB0 aGUgdGltZSBvZiBzZXR0aW5nIHVwIHRoZSB3YXRjaGVzLgoKZmFub3RpZnkgcGVybWlzc2lvbiBl dmVudHMgYXJlIHR5cGljYWxseSB1c2VkIGJ5IEFudGktbWFsd2FyZSBzb2Z3YXJlLAp0aGF0IGlz IHdhdGNoaW5nIHRoZSBlbnRpcmUgbW91bnQgYW5kIGl0IGlzIG5vdCBjb21tb24gdG8gaGF2ZSBt b3JlIHRoYXQKb25lIEFudGktbWFsd2FyZSBlbmdpbmUgaW5zdGFsbGVkIG9uIGEgc3lzdGVtLgoK VG8gcmVkdWNlIHRoZSBvdmVyaGVhZCBvZiB0aGUgZnNub3RpZnlfZmlsZV9wZXJtKCkgaG9va3Mg b24gZXZlcnkgZmlsZQphY2Nlc3MsIHJlbGF4IHRoZSBzZW1hbnRpY3Mgb2YgdGhlIGxlZ2FjeSBG QU5fT1BFTl9QRVJNIGV2ZW50IHRvIGdlbmVyYXRlCmV2ZW50cyBvbmx5IGlmIHRoZXJlIHdlcmUg KmFueSogcGVybWlzc2lvbiBldmVudCBsaXN0ZW5lcnMgb24gdGhlCmZpbGVzeXN0ZW0gYXQgdGhl IHRpbWUgdGhhdCB0aGUgZmlsZSB3YXMgb3Blbi4KClRoZSBuZXcgc2VtYW50aWNzLCBpbXBsZW1l bnRlZCB3aXRoIHRoZSBvcHQtaW4gRk1PREVfTk9USUZZX1BFUk0gZmxhZwphcmUgYWxzbyBnb2lu ZyB0byBhcHBseSB0byB0aGUgbmV3IGZhbm90aWZ5IHByZS1jb250ZW50IGV2ZW50IGluIG9yZGVy CnRvIHJlZHVjZSB0aGUgY29zdCBvZiB0aGUgcHJlLWNvbnRlbnQgZXZlbnQgdmZzIGhvb2tzLgoK U3VnZ2VzdGVkLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5v cmc+Ckxpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWZzZGV2ZWwvQ0FIay09d2o4 TD1tdGNSVGk9TkVDSE1HZlpRZ1hPcF91aXgxWVZoMDRmRW1yS2FNblhBQG1haWwuZ21haWwuY29t LwpTaWduZWQtb2ZmLWJ5OiBBbWlyIEdvbGRzdGVpbiA8YW1pcjczaWxAZ21haWwuY29tPgotLS0K IGluY2x1ZGUvbGludXgvZnMuaCAgICAgICB8ICAzICsrLQogaW5jbHVkZS9saW51eC9mc25vdGlm eS5oIHwgNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L2ZzLmggYi9pbmNsdWRlL2xpbnV4L2ZzLmgKaW5kZXggOWMxMzIyMjM2 MmY1Li45YjU4ZTk4ODdlNGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZnMuaAorKysgYi9p bmNsdWRlL2xpbnV4L2ZzLmgKQEAgLTE3Myw3ICsxNzMsOCBAQCB0eXBlZGVmIGludCAoZGlvX2lv ZG9uZV90KShzdHJ1Y3Qga2lvY2IgKmlvY2IsIGxvZmZfdCBvZmZzZXQsCiAKICNkZWZpbmUJRk1P REVfTk9SRVVTRQkJKChfX2ZvcmNlIGZtb2RlX3QpKDEgPDwgMjMpKQogCi0vKiBGTU9ERV8qIGJp dCAyNCAqLworLyogRmlsZSBtYXkgZ2VuZXJhdGUgZmFub3RpZnkgYWNjZXNzIHBlcm1pc3Npb24g ZXZlbnRzICovCisjZGVmaW5lIEZNT0RFX05PVElGWV9QRVJNCSgoX19mb3JjZSBmbW9kZV90KSgx IDw8IDI0KSkKIAogLyogRmlsZSBpcyBlbWJlZGRlZCBpbiBiYWNraW5nX2ZpbGUgb2JqZWN0ICov CiAjZGVmaW5lIEZNT0RFX0JBQ0tJTkcJCSgoX19mb3JjZSBmbW9kZV90KSgxIDw8IDI1KSkKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZnNub3RpZnkuaCBiL2luY2x1ZGUvbGludXgvZnNub3Rp ZnkuaAppbmRleCAyNzg2MjBlMDYzYWIuLmYwZmQzZGNhZTY1NCAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9saW51eC9mc25vdGlmeS5oCisrKyBiL2luY2x1ZGUvbGludXgvZnNub3RpZnkuaApAQCAtMTA4 LDEwICsxMDgsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZnNub3RpZnlfZGVudHJ5KHN0cnVjdCBk ZW50cnkgKmRlbnRyeSwgX191MzIgbWFzaykKIAlmc25vdGlmeV9wYXJlbnQoZGVudHJ5LCBtYXNr LCBkZW50cnksIEZTTk9USUZZX0VWRU5UX0RFTlRSWSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50 IGZzbm90aWZ5X2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIF9fdTMyIG1hc2spCisvKiBTaG91bGQg ZXZlbnRzIGJlIGdlbmVyYXRlZCBvbiB0aGlzIG9wZW4gZmlsZSByZWdhcmRsZXNzIG9mIHdhdGNo ZXM/ICovCitzdGF0aWMgaW5saW5lIGJvb2wgZnNub3RpZnlfZmlsZV93YXRjaGFibGUoc3RydWN0 IGZpbGUgKmZpbGUsIF9fdTMyIG1hc2spCiB7Ci0JY29uc3Qgc3RydWN0IHBhdGggKnBhdGg7Ci0K IAkvKgogCSAqIEZNT0RFX05PTk9USUZZIGFyZSBmZHMgZ2VuZXJhdGVkIGJ5IGZhbm90aWZ5IGl0 c2VsZiB3aGljaCBzaG91bGQgbm90CiAJICogZ2VuZXJhdGUgbmV3IGV2ZW50cy4gV2UgYWxzbyBk b24ndCB3YW50IHRvIGdlbmVyYXRlIGV2ZW50cyBmb3IKQEAgLTExOSwxNCArMTE4LDM3IEBAIHN0 YXRpYyBpbmxpbmUgaW50IGZzbm90aWZ5X2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIF9fdTMyIG1h c2spCiAJICogaGFuZGxlIGNyZWF0aW9uIC8gZGVzdHJ1Y3Rpb24gZXZlbnRzIGFuZCBub3QgInJl YWwiIGZpbGUgZXZlbnRzLgogCSAqLwogCWlmIChmaWxlLT5mX21vZGUgJiAoRk1PREVfTk9OT1RJ RlkgfCBGTU9ERV9QQVRIKSkKKwkJcmV0dXJuIGZhbHNlOworCisJLyogUGVybWlzc2lvbiBldmVu dHMgcmVxdWlyZSB0aGF0IHdhdGNoZXMgYXJlIHNldCBiZWZvcmUgRlNfT1BFTl9QRVJNICovCisJ aWYgKG1hc2sgJiBBTExfRlNOT1RJRllfUEVSTV9FVkVOVFMgJiB+RlNfT1BFTl9QRVJNICYmCisJ ICAgICEoZmlsZS0+Zl9tb2RlICYgRk1PREVfTk9USUZZX1BFUk0pKQorCQlyZXR1cm4gZmFsc2U7 CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGlubGluZSBpbnQgZnNub3RpZnlfZmlsZShz dHJ1Y3QgZmlsZSAqZmlsZSwgX191MzIgbWFzaykKK3sKKwljb25zdCBzdHJ1Y3QgcGF0aCAqcGF0 aDsKKworCWlmICghZnNub3RpZnlfZmlsZV93YXRjaGFibGUoZmlsZSwgbWFzaykpCiAJCXJldHVy biAwOwogCiAJcGF0aCA9ICZmaWxlLT5mX3BhdGg7Ci0JLyogUGVybWlzc2lvbiBldmVudHMgcmVx dWlyZSBncm91cCBwcmlvID49IEZTTk9USUZZX1BSSU9fQ09OVEVOVCAqLwotCWlmIChtYXNrICYg QUxMX0ZTTk9USUZZX1BFUk1fRVZFTlRTICYmCi0JICAgICFmc25vdGlmeV9zYl9oYXNfcHJpb3Jp dHlfd2F0Y2hlcnMocGF0aC0+ZGVudHJ5LT5kX3NiLAotCQkJCQkgICAgICAgRlNOT1RJRllfUFJJ T19DT05URU5UKSkKLQkJcmV0dXJuIDA7CisJLyoKKwkgKiBQZXJtaXNzaW9uIGV2ZW50cyByZXF1 aXJlIGdyb3VwIHByaW8gPj0gRlNOT1RJRllfUFJJT19DT05URU5ULgorCSAqIFVubGVzcyBwZXJt aXNzaW9uIGV2ZW50IHdhdGNoZXJzIGV4aXN0IGF0IEZTX09QRU5fUEVSTSB0aW1lLAorCSAqIG9w ZXJhdGlvbnMgb24gZmlsZSB3aWxsIG5vdCBiZSBnZW5lcmF0aW5nIGFueSBwZXJtaXNzaW9uIGV2 ZW50cy4KKwkgKi8KKwlpZiAobWFzayAmIEFMTF9GU05PVElGWV9QRVJNX0VWRU5UUykgeworCQlp ZiAoIWZzbm90aWZ5X3NiX2hhc19wcmlvcml0eV93YXRjaGVycyhwYXRoLT5kZW50cnktPmRfc2Is CisJCQkJCQkgICAgICAgRlNOT1RJRllfUFJJT19DT05URU5UKSkKKwkJCXJldHVybiAwOworCisJ CWlmIChtYXNrICYgRlNfT1BFTl9QRVJNKQorCQkJZmlsZS0+Zl9tb2RlIHw9IEZNT0RFX05PVElG WV9QRVJNOworCX0KIAogCXJldHVybiBmc25vdGlmeV9wYXJlbnQocGF0aC0+ZGVudHJ5LCBtYXNr LCBwYXRoLCBGU05PVElGWV9FVkVOVF9QQVRIKTsKIH0KQEAgLTE2NiwxNSArMTg4LDEyIEBAIHN0 YXRpYyBpbmxpbmUgaW50IGZzbm90aWZ5X2ZpbGVfcGVybShzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50 IHBlcm1fbWFzaykKICAqLwogc3RhdGljIGlubGluZSBpbnQgZnNub3RpZnlfb3Blbl9wZXJtKHN0 cnVjdCBmaWxlICpmaWxlKQogewotCWludCByZXQ7CisJaW50IHJldCA9IGZzbm90aWZ5X2ZpbGUo ZmlsZSwgRlNfT1BFTl9QRVJNKTsKIAotCWlmIChmaWxlLT5mX2ZsYWdzICYgX19GTU9ERV9FWEVD KSB7CisJaWYgKCFyZXQgJiYgZmlsZS0+Zl9mbGFncyAmIF9fRk1PREVfRVhFQykKIAkJcmV0ID0g ZnNub3RpZnlfZmlsZShmaWxlLCBGU19PUEVOX0VYRUNfUEVSTSk7Ci0JCWlmIChyZXQpCi0JCQly ZXR1cm4gcmV0OwotCX0KIAotCXJldHVybiBmc25vdGlmeV9maWxlKGZpbGUsIEZTX09QRU5fUEVS TSk7CisJcmV0dXJuIHJldDsKIH0KIAogI2Vsc2UKLS0gCjIuMzQuMQoK --0000000000002c97f80626b83cf0--