From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 4E78D8017D for ; Mon, 28 Sep 2026 14:31:07 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 68SETiZt010197; Mon, 28 Sep 2026 17:29:46 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 68SETiZt010197 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="VBEcC2/I" Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 68SETgpa010190 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Mon, 28 Sep 2026 17:29:42 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 68SETgpa010190 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-4888382a9e9so1739250f8f.1 for ; Mon, 28 Sep 2026 07:29:42 -0700 (PDT) X-Gm-Message-State: AFq9FYLRhgn7UrvFSa6qhSCu/4OJmR0WnZPZlv0h8jLt3GuGpbFK40N9 QcG7HKi8IgtmFkrKM+/El5NNNDlJgZSWgCtVy4Wipbt6NI1o9zsMFYUAWqddd0ltmkEJxs+ej6o PMyVXSFRwKNasDgZi7aShQiuTzYA12HSWsA8QU3/iTGZDRDadcMk8QA== X-Gm-Gg: AYBFou0gwVHmrJg3DRhs6/blUubEi/Ttgjfg+RAH7qxRBUrS6WuFQYJpA7qSeMWToKZ xORorIZmjsXTqjZTmHaR1pKhQr8/F37EfMVe34mBEl8kYWdIRs+GqqgpvT3Xl9ufcl3FJ93XVmA 8FrrBQNQiK4Xr73+GgkfG7yf+T+ANzm2YMjsX92dbFiRac1vAdevJuHFI2T+U2Rcxj2K/QOPaUt HUn40/skhCQn6wLaHxgFe8ue6Ax2FSIQyQ/pnwUv1jjXc1If/z6aw+zUD/pp8WrJF3xLq3wPbDk nbrRoiMRmGjdQjS35Rdv0Y7BR0khFnkATAlPi56hBpaNb+IAp/X6UvE8q5sClGdkNQhK/arPgPx o2hPtYREHpcdWlBVmcg== X-Received: by 2002:a05:6000:144f:b0:488:8823:f9e9 with SMTP id ffacd0b85a97d-488882403b5mr11834097f8f.34.1790605782153; Mon, 28 Sep 2026 07:29:42 -0700 (PDT) X-Received: by 2002:a05:6000:144f:b0:488:8823:f9e9 with SMTP id ffacd0b85a97d-488882403b5mr11834053f8f.34.1790605781646; Mon, 28 Sep 2026 07:29:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1790605781; cv=none; d=google.com; s=arc-20260327; b=e2xRZh4LLlqAkiqn4P8TT2cT8bDJBY/uEBEsfxplW51kFv6Rb49AwWU/Dk2KdZGkFe z0SvlU1+WYwSHgjBM6Q/ZKxbOKEzQOlSgYZopOQu+3bawKVdJvC1Y3lHSJ6Q0u6AYzcM AWs8WxTci5aE4bhxbkR5cn+olkQXQGnQXg38MMgS/fkthKBqGiInmTe7pIU9lpHju1Uo pyA+4sie9EwFTrBBKYKwUOYazClPc6mS1Q+osCmzDOkbUyEfe3QYiEmZSAGfRghWn3Hx wRuTpB5vqSkR2uUy7G5b42S9pVFZUC2nuJ4IItxJmOPk0Xo/7b9TUdaU224zNmq5GtsI dNyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:dkim-signature; bh=Uhr281q4GR+7DJc2T9kNM3B2du20RLdEDFc6BQajx+k=; fh=ldq4YnX7FUrr4roGLWGn9L1e93EaAOSb0AHw6AkGrgs=; b=f1GOer5zbDuRY6Q1jKHL709FITQyEltf3otvYFPl8Zi7Vy5wcHghQmAZeHOUvKA9ub LTu7aqxmx8gSFBEDKmg1hPB1zZG8as8hOm4mnQGbLxfhtyfxXlN8qL6V7jZVd+/I0jwt RqY3TB0XGphfsfPeqTXY7QHMOhZTqsHX+XB5n5vMv4r9t0o7Eo2TpwcUPs9+qyEDQpSM MFuP0d+jQCNyDKmAqkZsdxkN7JzsyCUtYAdyuj50jMZcMXiZZZFWDnz9N2DTAC+JLe2B GhzRldC4iT8p2y9uuyl8PX8Ie/THO1GIwVOE6G0E6d2x8iA5b7f6uFNBZiGtHwn9Y+5a Nd1g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b="VBEcC2/I"; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-4887a890c32si20549104f8f.503.2026.09.28.07.29.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Sep 2026 07:29:41 -0700 (PDT) Received-SPF: pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b="VBEcC2/I"; spf=pass (google.com: domain of khorenko@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Message-Id:Content-Type:MIME-Version:Subject:Date :From; bh=Uhr281q4GR+7DJc2T9kNM3B2du20RLdEDFc6BQajx+k=; b=VBEcC2/I3WFjS0mE1+7 w/uLw3WXRJVi3sv2/E3BS2I6FEHU7fUkTq9YhtSYY5geYYj1K4lBUKwiaHcbiK1JesvOp1CUix57o Yq0rtQywq9Yz4koyNemNXjuF6/SBaxg56wcVhUCEcBiaUuXssTjeWxjABmLXtLW1uBb84gq3DrGk6 FvWgjClVEpLAgw+G9W6OVfRwbq51g2Zp2xza7Bvt/VVH0OFluZuNE9o+ko5MFrhdcCUX5KcyJ0R1Z SXmxplvUyljkgOdqXhvPYPjO3POmqaVOzA9/LwoVTcg/S1fe6VwTqKUzeOxcmmnvpROkHHUs/O67F XanTyz1JBRolhmQ==; Received: from ch-demo-asa.virtuozzo.com ([130.117.225.8] helo=f0.sw.ru) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1xBCJM-0041M5-1R; Mon, 28 Sep 2026 16:29:32 +0200 From: Konstantin Khorenko Date: Mon, 28 Sep 2026 16:29:38 +0200 MIME-Version: 1.0 Message-Id: <20260928-b4-prep-kh-vstor-147641-fuse_notify_inval_files-v4-1-cb7cacc4ca45@virtuozzo.com> X-B4-Tracking: v=1; b=H4sIANF5umoC/52OTQ6CMBCFr2Jm7ZgWGhRX3sMQUsogo0hJC41Au LuAN3D5vby/GTw5Jg/XwwyOAnu27QrqeABT6/ZByOXKEIkoEWl0wUJh56jDV43B99ahVOdESaw GT3lre67GnNugm7zihjxGMjZalFrJVMPauoYr/uyLdwiTFJD9VD8UTzL9Nrb5at7ax/1YiHf33 x9CjBJVrKWRpaCC6BbY9YOdJnsy9g3Zsixf2qexRQoBAAA= X-Change-ID: 20260928-b4-prep-kh-vstor-147641-fuse_notify_inval_files-213ca0da419a To: Liu Kui , Alexey Kuznetsov , Pavel Tikhomirov X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2101; i=khorenko@virtuozzo.com; h=from:subject:message-id; bh=RQg4CD0GMfk65FUBgYk5kmiJH/5MDIEMOK1k78eLKmM=; b=kA0DAAoBUZYKR/lhXCoByyZiAGq6edShdPZTJDmiOrNV+nxGtnxGKfF09SPVy0RbNHdooBQHp okCMwQAAQoAHRYhBFYPbcg9xdPQY70ILFGWCkf5YVwqBQJqunnUAAoJEFGWCkf5YVwqjEsP/AyJ A2evhhO4+uZYZBU57LjriGqHEcJwv6/MTZy19aGrclkpu7PgrWCvaxb2qcecFuVEfwMlIO1mom9 2sJKTfoJ+GSdUCss4u9Gvn/yJs3mFRnhnbVbpy51VHB37fuJkOiNIqZRRb82RMzjLHY4FgCvpV3 y1NyFqXzk4EPtEa+q14OPFJNvt4F6GaDrA0HqPXRHC2x+8a+r/Fp4Gmb9SfVuqpdXseOZpltdi5 6mP+PTV7Xubz5REH0GCtienzoZUDCk0Jq0m+UyzWwEaE28YKCPfRVHQSk2y/p2XTqWswbztjG3g /hJL202Ucnb3VTT2A+Lo0wuDjcE60q55oRIxT3bePQWYo6TgWmuplakgWnDqiB2EPSFXBS+38c/ YErcorQFKbfbYAljqiRm4HFaon+tQ4XXLJsFblr1g4CueRivHFLFHcErAnN998/4Q8QwLFXvSfq B0KnEV73ABfsPlLhmuGC6FV34FMTNYyJiBfXNU9RmgmLo9lXvzvUg5yXdbd0CN4XzoOXRtCYbf6 +09FHuOyCjU0Q8NrwkRdcOoh0gSTfImjSl9mFtZH50oKQl1I6ukXoWPqnq7kauEjMOuDSxoHXD7 RKZs00tD2FcUPNgbwuLGKrDWwqREJ/xf8EWDsDMFPDve+11buOIdRAbJz49OI4Qj1CTzueeImy/ 7dAVJ X-Developer-Key: i=khorenko@virtuozzo.com; a=openpgp; fpr=560F6DC83DC5D3D063BD082C51960A47F9615C2A X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH vz10 v4] fs/fuse: sanity check inode type in fuse_invalidate_files() X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org Refuse anything but regular files so the interface can't be misused: fi->page_waitq is only initialised for those. https://virtuozzo.atlassian.net/browse/VSTOR-147641 Fixes: 19dd5fa442ea ("fuse: skip waiting for fuse writeback") Feature: vStorage Signed-off-by: Konstantin Khorenko Signed-off-by: Liu Kui --- Changes in v4: - commit message fully rewritten, many thsnk to Liu - Link to v3: http://lore.virtuozzo.com/20260928-b4-prep-kh-vstor-147641-fuse_notify_inval_files-v3-1-43a1c1d0ebee@virtuozzo.com Changes in v3: - fix the Fixes: tag. eab013c7511c is the hash "fuse: skip waiting for fuse writeback" has on branch-rh10-6.12.0-211.39.1.16.x.vz10-ovz; the rebase to 211.52.1.22 renumbered it to 19dd5fa442ea - drop the claim that an unprivileged fuse server can trigger this: the notification now takes a close_wait mount, so the sender is vstorage - drop the account of how the bug was found - add the reproducer and the note about the selftest above - Link to v2: http://lore.virtuozzo.com/20260819160529.490608-1-khorenko@virtuozzo.com - Link to v1: http://lore.virtuozzo.com/20260706110002.1024515-3-khorenko@virtuozzo.com The patch itself is unchanged since v2. --- fs/fuse/inode.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index eb2e9a4f87564..025984980c65f 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c @@ -667,6 +667,16 @@ int fuse_invalidate_files(struct fuse_dev *fud, u64 nodeid) if (!inode) return -ENOENT; + /* + * fuse_inval_files_work() wakes fi->page_waitq, which is initialised + * for regular files only - for other inode types it is not a + * waitqueue at all. + */ + if (!S_ISREG(inode->i_mode)) { + iput(inode); + return -EOPNOTSUPP; + } + fi = get_fuse_inode(inode); /* --- base-commit: ca54f152160587a74ff17cb52feef16f7b9d4e2b change-id: 20260928-b4-prep-kh-vstor-147641-fuse_notify_inval_files-213ca0da419a Best regards, -- Konstantin Khorenko _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel