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 ACBC2C2D0CD for ; Thu, 15 May 2025 23:16:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9143F6B0082; Thu, 15 May 2025 19:16:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8C3D96B0083; Thu, 15 May 2025 19:16:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 78D156B0085; Thu, 15 May 2025 19:16:14 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 5DADD6B0082 for ; Thu, 15 May 2025 19:16:14 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 3B957E0CE8 for ; Thu, 15 May 2025 23:16:15 +0000 (UTC) X-FDA: 83446702710.25.7A14D09 Received: from mail-yw1-f170.google.com (mail-yw1-f170.google.com [209.85.128.170]) by imf03.hostedemail.com (Postfix) with ESMTP id 4460A20005 for ; Thu, 15 May 2025 23:16:13 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=3N4rNOAH; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf03.hostedemail.com: domain of jthoughton@google.com designates 209.85.128.170 as permitted sender) smtp.mailfrom=jthoughton@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747350973; a=rsa-sha256; cv=none; b=XqZfNcr0kLrQxZu/VsMwhbTtPhwsr0D/UWFpKnI29veHUuZyqY1FPy6Jal6OvaW1GwPA1s QaRl5q2MY6c2fzhUHQnid1D8crCIhSX55w+LooerjEfIm9p6Ok2kTcmcAu9yVpx1Pb/BJs DetBR/vLXIXBG2atA8HNH2lFcj4Em+I= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=3N4rNOAH; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf03.hostedemail.com: domain of jthoughton@google.com designates 209.85.128.170 as permitted sender) smtp.mailfrom=jthoughton@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747350973; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Y5mmOI/4OR6UtWDoONoFMIJO2T0/hKQ0wXwTW+1Gf8g=; b=hyRE/L/9sCJ9mT6jo1ms5Tsz2JfV0JE0GGOwKvqCMZHMz1zmdwL0SHKTRLA9/nS24YCIBT sTC6QqQQrO6J7U49YV7TuJ19egPWKQUCpk8uSOE4Mojz08uOaEhB6MraxOBDW7d5YqmpQn g8ZI7GcIREeWyMhi0nub1CqJWb0MgOc= Received: by mail-yw1-f170.google.com with SMTP id 00721157ae682-70427fb838cso14389297b3.2 for ; Thu, 15 May 2025 16:16:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1747350972; x=1747955772; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Y5mmOI/4OR6UtWDoONoFMIJO2T0/hKQ0wXwTW+1Gf8g=; b=3N4rNOAHaZ5E57pPs1xQKPRd+wAjKQP8vno+TkO7Ya2gEQ87B9vysgmcX+eYVWxsRn 56qr+c2nxfNDEOE/4xshVIfC6rKKurs/m3JABULwPcaRvNpVwyQ6CDvmvgtwH0ulMV81 9EPh9z84MeuKevANMAl1Y36OZWcLHOmpAJrTsl5uu85NXqUEm7bnksv2Pt/pa27wfceu /UXYHMiupdYNTR0HsqYO80iY7tikj2yC6OW9YlyP2zzIggXN85zY+tq+uKOwwRiSgj8P 1/mhP7mYQSaX4E76BM3hJ45uVkjfr6kZw1Vjm8DLLGaWA2kAEWjjtFSl1nAr041dcoTT qqOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747350972; x=1747955772; h=content-transfer-encoding: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=Y5mmOI/4OR6UtWDoONoFMIJO2T0/hKQ0wXwTW+1Gf8g=; b=UO9D3egoIeQ44vsZfSY5XmjqyOPrFOsDzbS2VEcwH/6bYnhFVjXYFMFolSWS/fT9WW W2JLjoa25D5+DYUxKxbZWxmlh7QpjEqzJQPh/Zu0gFKTWj3YhvNiDbpK/JoERuqbxqvZ 2OPbZXibYjN6rULQtPPZmiZ6kTZsl5poZMkcoNKNAQ25LGoQUwnx0yK7HneYMgTc10li RtIdRrGlK5tk8NvLd8j1JzIB9yjcyCQ29Y3Afq9M+WwS0za0uObzsc4HQ+xkdO/ZbO3L nN3sq9qf4I8OVBg9UQi1z/vKn3iwBPamtRiOp2nLMxCBUyTD+TczL/AxJWQvapQfa9Hj rGlg== X-Forwarded-Encrypted: i=1; AJvYcCXCNjEjIhNnESRFFYsEmLaYcL60G0zNpKGVpg+8Ng9oG+bQtv9rFCHq4ZQ+RHNfQO/+GaKLlnfNYQ==@kvack.org X-Gm-Message-State: AOJu0YwWhtKMPa8wey/RLD19pwnpcqOS2KYytq4Tfdzmjnk+HeLMmEUd AtPqINNx3Y0NLbEBM6kYuJ3vU3eni3XhN+oSp7xKu/FqNYfjrlsUVKjcxuRh3ffl4lKoDFWDqa4 GMuEnKop5/mwXu0pFxDv6HjqWjx0iH+fMHGMyojtU X-Gm-Gg: ASbGncvtREsXUCkvRTFW29A9DNbL86zwfZhRIDYYlaLxiGyeQolmSPEjuC4Zetmv9Rt lfPAGt5bSf/eDux68wLL66fm6U1AtrucSiQkKcys+NAJta9DiNETQafz8mqdpA5V21m/i6e5YrZ uWPES2FJ4zUk6FgJaQDteQ69Qrcbt29qijillRTnWRpOTr7iV3IcFcCPTQMvrbJa3oayWLEtlf4 Q== X-Google-Smtp-Source: AGHT+IFFHBYRwvCtfapZS/yu0YBHtTfKBBrDprV/SIxy8r7ithlDy7wnX4wo9osw8Ua2f4JgbG2SQ+W5qDC1/NhHDR0= X-Received: by 2002:a05:690c:6c0c:b0:708:3532:ec94 with SMTP id 00721157ae682-70ca75dd471mr27677277b3.0.1747350971992; Thu, 15 May 2025 16:16:11 -0700 (PDT) MIME-Version: 1.0 References: <20250515182322.117840-1-pasha.tatashin@soleen.com> <20250515182322.117840-9-pasha.tatashin@soleen.com> In-Reply-To: <20250515182322.117840-9-pasha.tatashin@soleen.com> From: James Houghton Date: Thu, 15 May 2025 16:15:36 -0700 X-Gm-Features: AX0GCFvcRAz1A96zfk5fwiW5s1ruo_5m1cnWp4ykamlEP9S3Jtz2iPKdg4_M8Ho Message-ID: Subject: Re: [RFC v2 08/16] luo: luo_files: add infrastructure for FDs To: Pasha Tatashin Cc: pratyush@kernel.org, jasonmiu@google.com, graf@amazon.com, changyuanl@google.com, rppt@kernel.org, dmatlack@google.com, rientjes@google.com, corbet@lwn.net, rdunlap@infradead.org, ilpo.jarvinen@linux.intel.com, kanie@linux.alibaba.com, ojeda@kernel.org, aliceryhl@google.com, masahiroy@kernel.org, akpm@linux-foundation.org, tj@kernel.org, yoann.congal@smile.fr, mmaurer@google.com, roman.gushchin@linux.dev, chenridong@huawei.com, axboe@kernel.dk, mark.rutland@arm.com, jannh@google.com, vincent.guittot@linaro.org, hannes@cmpxchg.org, dan.j.williams@intel.com, david@redhat.com, joel.granados@kernel.org, rostedt@goodmis.org, anna.schumaker@oracle.com, song@kernel.org, zhangguopeng@kylinos.cn, linux@weissschuh.net, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, gregkh@linuxfoundation.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, rafael@kernel.org, dakr@kernel.org, bartosz.golaszewski@linaro.org, cw00.choi@samsung.com, myungjoo.ham@samsung.com, yesanishhere@gmail.com, Jonathan.Cameron@huawei.com, quic_zijuhu@quicinc.com, aleksander.lobakin@intel.com, ira.weiny@intel.com, andriy.shevchenko@linux.intel.com, leon@kernel.org, lukas@wunner.de, bhelgaas@google.com, wagi@kernel.org, djeffery@redhat.com, stuart.w.hayes@gmail.com, ptyadav@amazon.de Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 4460A20005 X-Rspam-User: X-Stat-Signature: orjkg8i47sxjesmt5ofq3c5s7cidsosd X-HE-Tag: 1747350973-696583 X-HE-Meta: U2FsdGVkX1/PLf4F1aF5pZ+N5Khqh2it5HUFt41L2mbeke2RSy5A39uM70pFmaQ0gSgi0bxziAWLswdCweGjjnkMYfTxiA7ZTz2GJ5/krWXc3acesmN7kHMZ4ob7EtSyuXZULeVxfW/h8p8lRRjiuGsKP/A03bvHgbBWjd9JZX4ew7NsQxq2sG853VUKS1kvhADYuJAwqrEZC3biZxc/nEqn8tq3/WBKt2JWcVbRToIiB0YvUinNuY2kt4FoNxlHmqQMQ/1Yz8YPI5Dkn1MH2SuDp02plH7XPAejDQSrSJRnacG3jPFVr41lI+o/RJgpeleL+GlTAu8UcP2w1DUvjdhymrGPhbVzMQpK+AgW9cLPuQF3a2wSF9XuLlL0bA8uQEZBTqmb0tre6fbKd+wgss2iBQ8/a5Tvoe0yQ1+EUCGM84WD56d8dmXlYo9gQhA/BC5tgnNbyIiSriEraaIJ4aW16Ue1pgkUub3dbj2A6De2lNcaD/1y1aKVJO+TV/WzqrVCyKPB2qzPIVRbE1UixCDvEJkimLcRQsMB9aDTBLR7DN5SD5eZZA1VRrhCYhWS3mllHUDUL5fZ2zzaf3AtlZz3zo2JCWtxFdhtAiaZlGbc/PYywNCNHy/ZctIuIjUNfkCv/RmZA5ZaEvl/qOxt+lO5JnJeEo7v0XLql6X133Ao7g6iRJSQaeAvTJNoHtt1SogoiuSvLFfjKQv3n2F9M42pBdCk81feikkJvwsZuwcjbEW0jGe9mp5sFT786uPQBRE87AkGFZTVQ27g+GPh/SkgwfTJpUnODPwXK0ukL357NXeCpkJgJr7EZfuGqe2HVLr4myUcbKsRnTbJZQq/X8cGo1yhYZ7eBL32zDRw3516VgeVzFVqOvwV0KXRmfNsh79ce5FSsJW9bmU5BmbZguTIttACuNy2b+IV+PslIclLuLXhTq1KEg0EEG4KDpSRuEdHUjXzGNctP81WOT8 J7wr7C4j Fra7RcQ0sJ8ZjMPw7JRmnNt0YcG9skMAivBtx32iM6FhvtcKOWx0Ib0UQJk4UWGOZS76PNrebkqX+3hOFyhH0ExmsCDLspK8zGSj+9+RvX4W1FmnfhFFEB/R+SCJSWmKNkgSzJVKIWZP6wsmzBXWo57dlgCdx5DISaMz0D4zMWcKvf7Q/+Zs3LKEykmqKH2PSMoMxPHZ2de7XfUNE2gr48vVMsWvp8lMBmYVvnhIdPlHc7mVqG6mGNbRC8jiMdhxhFLDkb2Kwcr5NCt+NSuDitNOkVpF4nCxHwM+Ktin3LNIivoy6N3lb8dOeN724NHEDufoI4HqQnmwYGAYkmB6CULlIhbOLiiMfklY2cBk54FgTqGOCOdVlUl47QQ== 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: On Thu, May 15, 2025 at 11:23=E2=80=AFAM Pasha Tatashin wrote: > +/** > + * luo_retrieve_file - Find a registered file instance by its token. > + * @token: The unique token of the file instance to retrieve. > + * @file: Output parameter. On success (return value 0), this will point > + * to the retrieved "struct file". > + * > + * Searches the global list for a &struct luo_file matching the @token. = Uses a > + * read lock, allowing concurrent retrievals. > + * > + * Return: 0 on success. Negative errno on failure. > + */ > +int luo_retrieve_file(u64 token, struct file **file) > +{ > + struct luo_file *luo_file; > + int ret =3D 0; > + > + luo_files_recreate_luo_files_xa_in(); > + luo_state_read_enter(); > + if (!liveupdate_state_updated()) { > + pr_warn("File can be retrieved only in updated state\n"); > + luo_state_read_exit(); > + return -EBUSY; > + } > + > + luo_file =3D xa_load(&luo_files_xa_in, token); > + if (luo_file && !luo_file->reclaimed) { > + luo_file->reclaimed =3D true; I haven't been able to pay too much attention to the series yet, and I know this was posted as an RFC, so pardon my nit-picking. I think you need to have xchg here for this not to be racy, so something li= ke: `if (luo_file && !xchg(&luo_file->reclaimed, true))` Or maybe you meant to avoid this race some other way; IIUC, luo_state_read_enter() is not sufficient. Thanks! > + ret =3D luo_file->fs->retrieve(luo_file->fs->arg, > + luo_file->private_data, > + file); > + if (!ret) > + luo_file->file =3D *file; > + } else if (luo_file && luo_file->reclaimed) { > + pr_err("The file descriptor for token %lld has already be= en retrieved\n", > + token); > + ret =3D -EINVAL; > + } else { > + ret =3D -ENOENT; > + } > + > + luo_state_read_exit(); > + > + return ret; > +}