From nobody Mon Feb 9 15:00:06 2026 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4154F1F3B85; Tue, 13 Jan 2026 01:51:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.97.179.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768269106; cv=none; b=npkuWK0A6WKIMTAKW9CxIBHnyIEYAP+4DL02F0g3gElWSizBqgduaIam1smGW2r5HN9gaegmKZpIvO+EccRvPlvFaH3Ehg4OUSrdwG5Ybs4vXPh0M4prX1kiqn2UL8rpJ1BkUA1/QGwIrBodw2QYBIXsuGL09UhNJvB+CtvYlHY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768269106; c=relaxed/simple; bh=N5mJD84jjlTOcWQ/5lkZb0ciTA+kRswmgjHCiPQ4CSo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YM/seHjWxV80muG+Mn/anJiAqsitus8FYspihcdW0Fjje9JgHAYSXc8Se6cLuJInXdg1sVddm4SJf9hVOhf8M2hRgaXYXFSW9KCQci0s/mbIR3b7EGwp8HrHCLwjwAjFC9jvvJVY8QE0jnpwnkCD91UcwgmSZF7C6ucIFLAZ2dw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com; spf=pass smtp.mailfrom=igalia.com; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b=UNFuL9RW; arc=none smtp.client-ip=213.97.179.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=igalia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b="UNFuL9RW" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=KvW2nbBjK1SsE1/dbKHi+WGWuDVP3eEQGp4M6t41xno=; b=UNFuL9RWa7hUCSGFtK5B+KHwYZ y1NWMSmaQ9rpECpg4i77RczHM/i6LGSrWMWZ1GfeOZeusX1ifPjEKbYkJO7BYkyBnz39kH8Mb7yZg 98nO1dGmqb6bs/MzFrhZm5x0qBIJLm3wpLxopePNKX4JWOFDffLZr2f6kD1sb4SVmepLersVHhpRK 8qxecRGkpSle+fbcZqAvmgd2NnlnoZaupI2cw8LqH2lG3kLpXpfxlKhzTUVHatDNF2+D1OB/CjxiS 58rn/eF+QOwHReGTayNmPFXU2yC8SiLuERBUHe90KCRFeU7ob0AewDvd8S5joV50Gyt5QnTurphzJ lNpAVgoQ==; Received: from [179.118.187.16] (helo=[192.168.15.100]) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1vfTZO-004eIK-58; Tue, 13 Jan 2026 02:51:42 +0100 From: =?utf-8?q?Andr=C3=A9_Almeida?= Date: Mon, 12 Jan 2026 22:51:24 -0300 Subject: [PATCH 1/4] exportfs: Fix kernel-doc output for get_name() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260112-tonyk-fs_uuid-v1-1-acc1889de772@igalia.com> References: <20260112-tonyk-fs_uuid-v1-0-acc1889de772@igalia.com> In-Reply-To: <20260112-tonyk-fs_uuid-v1-0-acc1889de772@igalia.com> To: Chuck Lever , Jeff Layton , Amir Goldstein , NeilBrown , Olga Kornievskaia , Dai Ngo , Tom Talpey , Trond Myklebust , Anna Schumaker , Jonathan Corbet , Christian Brauner , Alexander Viro , Jan Kara Cc: linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-dev@igalia.com, =?utf-8?q?Andr=C3=A9_Almeida?= X-Mailer: b4 0.14.3 Without a space between %NAME_MAX and the plus sign, kernel-doc will output ``NAME_MAX``+1, which scapes the last backtick and make Sphinx format a much larger string as monospaced text. Signed-off-by: Andr=C3=A9 Almeida Reviewed-by: Chuck Lever Reviewed-by: Jeff Layton Reviewed-by: Randy Dunlap Tested-by: Randy Dunlap --- include/linux/exportfs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/exportfs.h b/include/linux/exportfs.h index f0cf2714ec52..599ea86363e1 100644 --- a/include/linux/exportfs.h +++ b/include/linux/exportfs.h @@ -234,7 +234,7 @@ struct handle_to_path_ctx { * get_name: * @get_name should find a name for the given @child in the given @pare= nt * directory. The name should be stored in the @name (with the - * understanding that it is already pointing to a %NAME_MAX+1 sized + * understanding that it is already pointing to a %NAME_MAX + 1 sized * buffer. get_name() should return %0 on success, a negative error c= ode * or error. @get_name will be called without @parent->i_rwsem held. * --=20 2.52.0 From nobody Mon Feb 9 15:00:06 2026 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E56EE285CA9; Tue, 13 Jan 2026 01:51:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.97.179.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768269115; cv=none; b=YYTpzwRbp77ZZrAbmIT3pQOL1YJNOvTP2ZxRtrIvheyE8rkJWuT/vlwDrGWFJSn9SSs1Z1hhuwn0xWAzyB832RoNXawbT76YhxWBWetr/x0KTay085GkrfIOv8rfqyxOHho72bjnNDIJeTyOBATPY9f157WgOLu0wZOfnEoDEWA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768269115; c=relaxed/simple; bh=sLCPq0OcSGPqPYmGCSndEj0RGX9tSBGu+ndjRmXoPM4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AJDxvNUQZbxL370HxUy7Y5nH5SkgUx3PcuXLwRtoYmY6qXhaH3Am69SlGTq1/QBjcqHVT00kuUAMShWqLgchDiCtQuPErBf2UOJODqK7ucmkvhCaRDeo2StJdVJbMHvUtc+4rzM0bDy7KFfUoqxEhHXlbFcPkTrk+Ykh/kDjwog= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com; spf=pass smtp.mailfrom=igalia.com; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b=AtKhp3Nz; arc=none smtp.client-ip=213.97.179.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=igalia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b="AtKhp3Nz" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=q3KY/QclWt7xEzREN3uba7eKw5lgckSwPwxnU2hYqew=; b=AtKhp3Nz/TH5GP/i2KVG2TOs9G UX2Nr78Jbu/XV1VxNZdRz0AHOrDADSr39SWgRNp/YtGvckbmegFWYLtNkcem7ezre1Bmmnx8EclBj ayI6b4HrBWbACsTtL4isH402cwHxoBqTJHccPzkY12STKAmYjMZaeH0dzFnVIUO80R4XnB809r8Or SZhYJ7Aio8/70Iw16AAAFwq2TjC2js6/svCcRLcEVGrQWTyMwo9wbAlGxwUBPAy4QVBgCDj80K1Z8 82xjVbT5342CWbGQrevsy2PfON2qZ2GUSIWdEHHiqofufzjRTvrcAyZ+8a1bTNN+DOQHLIU35N/Sn 3Wi1lD8Q==; Received: from [179.118.187.16] (helo=[192.168.15.100]) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1vfTZS-004eIK-K1; Tue, 13 Jan 2026 02:51:46 +0100 From: =?utf-8?q?Andr=C3=A9_Almeida?= Date: Mon, 12 Jan 2026 22:51:25 -0300 Subject: [PATCH 2/4] exportfs: Mark struct export_operations functions at kernel-doc Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260112-tonyk-fs_uuid-v1-2-acc1889de772@igalia.com> References: <20260112-tonyk-fs_uuid-v1-0-acc1889de772@igalia.com> In-Reply-To: <20260112-tonyk-fs_uuid-v1-0-acc1889de772@igalia.com> To: Chuck Lever , Jeff Layton , Amir Goldstein , NeilBrown , Olga Kornievskaia , Dai Ngo , Tom Talpey , Trond Myklebust , Anna Schumaker , Jonathan Corbet , Christian Brauner , Alexander Viro , Jan Kara Cc: linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-dev@igalia.com, =?utf-8?q?Andr=C3=A9_Almeida?= X-Mailer: b4 0.14.3 Adding a `@` before the function names make then recognizable as kernel-docs, so they get correctly rendered in the documentation. Even if they are already marked with `@` in the short one-line summary, the kernel-docs will correctly favor the more detailed definition here. Signed-off-by: Andr=C3=A9 Almeida Reviewed-by: Chuck Lever Reviewed-by: Jeff Layton Reviewed-by: Randy Dunlap Tested-by: Randy Dunlap --- Should I just remove the short descriptions? --- include/linux/exportfs.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/include/linux/exportfs.h b/include/linux/exportfs.h index 599ea86363e1..bed370b9f906 100644 --- a/include/linux/exportfs.h +++ b/include/linux/exportfs.h @@ -203,7 +203,7 @@ struct handle_to_path_ctx { * See Documentation/filesystems/nfs/exporting.rst for details on how to u= se * this interface correctly. * - * encode_fh: + * @encode_fh: * @encode_fh should store in the file handle fragment @fh (using at mo= st * @max_len bytes) information that can be used by @decode_fh to recove= r the * file referred to by the &struct dentry @de. If @flag has CONNECTABL= E bit @@ -215,7 +215,7 @@ struct handle_to_path_ctx { * greater than @max_len*4 bytes). On error @max_len contains the minim= um * size(in 4 byte unit) needed to encode the file handle. * - * fh_to_dentry: + * @fh_to_dentry: * @fh_to_dentry is given a &struct super_block (@sb) and a file handle * fragment (@fh, @fh_len). It should return a &struct dentry which ref= ers * to the same file that the file handle fragment refers to. If it can= not, @@ -227,29 +227,29 @@ struct handle_to_path_ctx { * created with d_alloc_root. The caller can then find any other extant * dentries by following the d_alias links. * - * fh_to_parent: + * @fh_to_parent: * Same as @fh_to_dentry, except that it returns a pointer to the parent * dentry if it was encoded into the filehandle fragment by @encode_fh. * - * get_name: + * @get_name: * @get_name should find a name for the given @child in the given @pare= nt * directory. The name should be stored in the @name (with the * understanding that it is already pointing to a %NAME_MAX + 1 sized * buffer. get_name() should return %0 on success, a negative error c= ode * or error. @get_name will be called without @parent->i_rwsem held. * - * get_parent: + * @get_parent: * @get_parent should find the parent directory for the given @child wh= ich * is also a directory. In the event that it cannot be found, or stora= ge * space cannot be allocated, a %ERR_PTR should be returned. * - * permission: + * @permission: * Allow filesystems to specify a custom permission function. * - * open: + * @open: * Allow filesystems to specify a custom open function. * - * commit_metadata: + * @commit_metadata: * @commit_metadata should commit metadata changes to stable storage. * * Locking rules: --=20 2.52.0 From nobody Mon Feb 9 15:00:06 2026 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9C8EB27CCF2; Tue, 13 Jan 2026 01:51:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.97.179.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768269121; cv=none; b=dHbq+oeVH+nXq79ApOsXnjLztwujwL/gcjNukAOSu0o7xzLGu5YFJ6bAas6/cH5rqcC+kbPDi557eIWz625qW1oQEPm9yFMRi+E3NLex9bULDtxCQ80ivudYMKc5PYTxlvVQamCWXvW0cvL9MG1XM3rRKXQapvH7hT6g4Mg9pY0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768269121; c=relaxed/simple; bh=P+Ywq5FPG2ciipy3AswaEWw+bKqhkt6uNsUnMuwTwvA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gS4kSddLFA3/iXVmm9fmkHeiM1/jy2PiI3nazUmjcHsd4UjAdYWmh4JVwmWznBGZ+o+1MyVMYUboDDju3xAYDFjeyCFu2cDpLzCKehoL89+wHlmhb2tbR5nQ3sr8c62OpE9T4CVogbNF7NNlsx3k+CAG+zdhsAc4RQk5SuCFNFU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com; spf=pass smtp.mailfrom=igalia.com; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b=g0Z+Ukbd; arc=none smtp.client-ip=213.97.179.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=igalia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b="g0Z+Ukbd" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=rxW6eXQVHrIStPv9+cmpoyg9W8dPuOTMMa1waxZTs3w=; b=g0Z+UkbdfFwRMxM73YGiHDr4xi O57XyNnp4KShYNTCzZVOmaz+uLUuUayz0RlfGB3RcQ7SyiZQv+kzzwv6mDylAhLHW6Jubwpjkcngx AHUEhCeauDZeR2LjZfu1SrbrAmRsv+F2icuAoXW4NRJ5Mza9jvcVx8aNyx3p5nJzThUSWTFO+44Po zWazVFQKY9At+3UpxI9z+f19PsSzXvoYrN2R2kf2Fvx68s3tqImrlXEy4IV5DfHKUMz2gg5XeG3VK uGU/6Ilyy6uxeSKUIMgazBXnnHPDdjeY2X8vmHUi9DWosKI0HjxZ7puktkO7TNU53w9CDUcBtf69e J+eJQXzw==; Received: from [179.118.187.16] (helo=[192.168.15.100]) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1vfTZX-004eIK-2S; Tue, 13 Jan 2026 02:51:51 +0100 From: =?utf-8?q?Andr=C3=A9_Almeida?= Date: Mon, 12 Jan 2026 22:51:26 -0300 Subject: [PATCH 3/4] exportfs: Complete kernel-doc for struct export_operations Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260112-tonyk-fs_uuid-v1-3-acc1889de772@igalia.com> References: <20260112-tonyk-fs_uuid-v1-0-acc1889de772@igalia.com> In-Reply-To: <20260112-tonyk-fs_uuid-v1-0-acc1889de772@igalia.com> To: Chuck Lever , Jeff Layton , Amir Goldstein , NeilBrown , Olga Kornievskaia , Dai Ngo , Tom Talpey , Trond Myklebust , Anna Schumaker , Jonathan Corbet , Christian Brauner , Alexander Viro , Jan Kara Cc: linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-dev@igalia.com, =?utf-8?q?Andr=C3=A9_Almeida?= X-Mailer: b4 0.14.3 Write down the missing members definitions for struct export_operations, using as a reference the commit messages that created the members. Signed-off-by: Andr=C3=A9 Almeida Reviewed-by: Chuck Lever Reviewed-by: Jeff Layton Reviewed-by: Randy Dunlap Tested-by: Randy Dunlap --- include/linux/exportfs.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/include/linux/exportfs.h b/include/linux/exportfs.h index bed370b9f906..262e24d83313 100644 --- a/include/linux/exportfs.h +++ b/include/linux/exportfs.h @@ -201,7 +201,7 @@ struct handle_to_path_ctx { * @commit_metadata: commit metadata changes to stable storage * * See Documentation/filesystems/nfs/exporting.rst for details on how to u= se - * this interface correctly. + * this interface correctly and the definition of the flags. * * @encode_fh: * @encode_fh should store in the file handle fragment @fh (using at mo= st @@ -252,6 +252,19 @@ struct handle_to_path_ctx { * @commit_metadata: * @commit_metadata should commit metadata changes to stable storage. * + * @get_uuid: + * Get a filesystem unique signature exposed to clients. + * + * @map_blocks: + * Map and, if necessary, allocate blocks for a layout. + * + * @commit_blocks: + * Commit blocks in a layout once the client is done with them. + * + * @flags: + * Allows the filesystem to communicate to nfsd that it may want to do = things + * differently when dealing with it. + * * Locking rules: * get_parent is called with child->d_inode->i_rwsem down * get_name is not (which is possibly inconsistent) --=20 2.52.0 From nobody Mon Feb 9 15:00:06 2026 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF16E27A133; Tue, 13 Jan 2026 01:51:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.97.179.56 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768269125; cv=none; b=uoT70jWSLyTpBzJ6JSnoffZK7ll0DdEEeW+l0JaLjj1w9PokWbf20+UlyGx3eCqZPgptZw9/4zmAJM1296V6BVIVNd7Gs3zvgiupL3ZiJx40Dq3EAApDIltKqMWLABv6j8uB1G4u7kpxHIiYtwJQIJ7Wmt+i+JJc3f40kYugJ3I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768269125; c=relaxed/simple; bh=cXWrcjIu1TuAnvLNJ1kqMczhwhCilJhwU5cxyKK0D1k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jBn/4Ias0k+CQ9t++cPfn6CLZ8PjorzATp9v9W9wGG6chxKIfsYOQJvtZm3t8NwSVtwRCe0OhhKtqKcaJMJvAklMhscmQlvNNhyMvqSWvGR1kozS+B9ogxduzE/TKCpZ+1CVT9f8JON7+vftAD0yvh8b+UDX1Sc2B5jZVwecDUw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com; spf=pass smtp.mailfrom=igalia.com; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b=r2Jv5T8y; arc=none smtp.client-ip=213.97.179.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=igalia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b="r2Jv5T8y" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Cc:To:In-Reply-To:References:Message-Id: Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date:From:Sender: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=KjmEHcmuPBEPC5lqMLN5wiVEiW4EnFopnwUvVuNy1ag=; b=r2Jv5T8yL6nR/rcA6Z383GLUwV 5aXH8rN7h5T/ES3VKoVfNahVvNX4aFECmQvpTybISNuWsU6yqmfPELRYSz5EVGtdl1KUIk420NbVJ 9oZcvC0dDxh0teeSvBJtiWN0Q9RfLtIxn+A9+n8ZWv5O6/8pMMEIBD4jh5l7nhHnWtNreSAIgb+bn ljl9+TDqOaisAnQ5bAhGpNbcwijl/7Y6wfAzzmfrr97iv+Bs+ZMXiz+e9OXUJ/6FRaq1eSq1w8+T6 IFTzvMtp68amlYV4yN3+PHxKLiN1Q2CP3eTiS/IOH2SsmS5pFTsHJxRuwH83fYAxbgKRNR94PEK28 B/TjX00Q==; Received: from [179.118.187.16] (helo=[192.168.15.100]) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_256_GCM:256) (Exim) id 1vfTZb-004eIK-HG; Tue, 13 Jan 2026 02:51:55 +0100 From: =?utf-8?q?Andr=C3=A9_Almeida?= Date: Mon, 12 Jan 2026 22:51:27 -0300 Subject: [PATCH 4/4] docs: exportfs: Use source code struct documentation Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260112-tonyk-fs_uuid-v1-4-acc1889de772@igalia.com> References: <20260112-tonyk-fs_uuid-v1-0-acc1889de772@igalia.com> In-Reply-To: <20260112-tonyk-fs_uuid-v1-0-acc1889de772@igalia.com> To: Chuck Lever , Jeff Layton , Amir Goldstein , NeilBrown , Olga Kornievskaia , Dai Ngo , Tom Talpey , Trond Myklebust , Anna Schumaker , Jonathan Corbet , Christian Brauner , Alexander Viro , Jan Kara Cc: linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-dev@igalia.com, =?utf-8?q?Andr=C3=A9_Almeida?= X-Mailer: b4 0.14.3 Instead of duplicating struct export_operations documentation in both ReST file and in the C source code, just use the kernel-doc in the docs. While here, make the sentence preceding the paragraph less redundant. Signed-off-by: Andr=C3=A9 Almeida Reviewed-by: Chuck Lever Reviewed-by: Jeff Layton Reviewed-by: Randy Dunlap Tested-by: Randy Dunlap --- Documentation/filesystems/nfs/exporting.rst | 42 ++++---------------------= ---- 1 file changed, 5 insertions(+), 37 deletions(-) diff --git a/Documentation/filesystems/nfs/exporting.rst b/Documentation/fi= lesystems/nfs/exporting.rst index de64d2d002a2..a01d9b9b5bc3 100644 --- a/Documentation/filesystems/nfs/exporting.rst +++ b/Documentation/filesystems/nfs/exporting.rst @@ -119,43 +119,11 @@ For a filesystem to be exportable it must: =20 A file system implementation declares that instances of the filesystem are exportable by setting the s_export_op field in the struct -super_block. This field must point to a "struct export_operations" -struct which has the following members: - - encode_fh (mandatory) - Takes a dentry and creates a filehandle fragment which may later be us= ed - to find or create a dentry for the same object. - - fh_to_dentry (mandatory) - Given a filehandle fragment, this should find the implied object and - create a dentry for it (possibly with d_obtain_alias). - - fh_to_parent (optional but strongly recommended) - Given a filehandle fragment, this should find the parent of the - implied object and create a dentry for it (possibly with - d_obtain_alias). May fail if the filehandle fragment is too small. - - get_parent (optional but strongly recommended) - When given a dentry for a directory, this should return a dentry for - the parent. Quite possibly the parent dentry will have been allocated - by d_alloc_anon. The default get_parent function just returns an error - so any filehandle lookup that requires finding a parent will fail. - ->lookup("..") is *not* used as a default as it can leave ".." entries - in the dcache which are too messy to work with. - - get_name (optional) - When given a parent dentry and a child dentry, this should find a name - in the directory identified by the parent dentry, which leads to the - object identified by the child dentry. If no get_name function is - supplied, a default implementation is provided which uses vfs_readdir - to find potential names, and matches inode numbers to find the correct - match. - - flags - Some filesystems may need to be handled differently than others. The - export_operations struct also includes a flags field that allows the - filesystem to communicate such information to nfsd. See the Export - Operations Flags section below for more explanation. +super_block. This field must point to a struct export_operations +which has the following members: + +.. kernel-doc:: include/linux/exportfs.h + :identifiers: struct export_operations =20 A filehandle fragment consists of an array of 1 or more 4byte words, together with a one byte "type". --=20 2.52.0