linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] man-pages: add documentation for statmount/listmount
@ 2024-06-26 15:56 Josef Bacik
  2024-06-26 15:56 ` [PATCH v2 1/2] statmount.2: New page describing the statmount syscall Josef Bacik
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Josef Bacik @ 2024-06-26 15:56 UTC (permalink / raw)
  To: alx, linux-man, brauner, linux-fsdevel, mszeredi, kernel-team

V1: https://lore.kernel.org/linux-fsdevel/cover.1719341580.git.josef@toxicpanda.com/

v1->v2:
- Dropped the statx patch as Alejandro already took it (thanks!)
- Reworked everything to use semantic newlines
- Addressed all of the comments on the statmount.2 man page

I'm still unable to run anything other than make check, and if I do `make -t
lint-c-checkpatch` and then run make check lint build it fails almost
immediately on other unrelated things, so I think I'm too dumb to know how to
check these patches before I send them.  However I did my best to follow all of
the suggestions.  Thanks,

Josef

Josef Bacik (2):
  statmount.2: New page describing the statmount syscall
  listmount.2: New page describing the listmount syscall

 man/man2/listmount.2 | 114 +++++++++++++++++
 man/man2/statmount.2 | 289 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 403 insertions(+)
 create mode 100644 man/man2/listmount.2
 create mode 100644 man/man2/statmount.2

-- 
2.43.0


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v2 1/2] statmount.2: New page describing the statmount syscall
  2024-06-26 15:56 [PATCH v2 0/2] man-pages: add documentation for statmount/listmount Josef Bacik
@ 2024-06-26 15:56 ` Josef Bacik
  2024-06-26 15:56 ` [PATCH v2 2/2] listmount.2: New page describing the listmount syscall Josef Bacik
  2024-06-26 17:02 ` [PATCH v2 0/2] man-pages: add documentation for statmount/listmount Alejandro Colomar
  2 siblings, 0 replies; 11+ messages in thread
From: Josef Bacik @ 2024-06-26 15:56 UTC (permalink / raw)
  To: alx, linux-man, brauner, linux-fsdevel, mszeredi, kernel-team

Add some documentation on the new statmount syscall.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
---
 man/man2/statmount.2 | 289 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 289 insertions(+)
 create mode 100644 man/man2/statmount.2

diff --git a/man/man2/statmount.2 b/man/man2/statmount.2
new file mode 100644
index 000000000..9eefebde7
--- /dev/null
+++ b/man/man2/statmount.2
@@ -0,0 +1,289 @@
+'\" t
+.\" Copyright (c) 2024 Josef Bacik <josef@toxicpanda.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH statmount 2 (date) "Linux man-pages (unreleased)"
+.SH NAME
+statmount \- get a mount status
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.BR "#include <linux/mount.h>" "  /* Definition of STATMOUNT_* constants */"
+.B #include <unistd.h>
+.P
+.BI "int syscall(SYS_statmount, struct mnt_id_req * " req ,
+.BI "            struct statmount * " statmountbuf ", size_t " bufsize ,
+.BI "            unsigned long " flags " );
+.P
+.B #include <linux/mount.h>
+.P
+.EX
+.B struct mnt_id_req {
+.BR "    __u32 size;" "    /* sizeof(struct mnt_id_req) */"
+.BR "    __u64 mnt_id;" "  /* The mnt_id being queried */"
+.BR "    __u64 param;" "   /* An ORed combination of the STATMOUNT_ constants */"
+.B };
+.EE
+.P
+.EX
+.B struct statmount {
+.B "    __u32 size;"
+.B "    __u64 mask;"
+.B "    __u32 sb_dev_major;"
+.B "    __u32 sb_dev_minor;"
+.B "    __u64 sb_magic;"
+.B "    __u32 sb_flags;"
+.B "    __u32 fs_type;"
+.B "    __u64 mnt_id;"
+.B "    __u64 mnt_parent_id;"
+.B "    __u32 mnt_id_old;"
+.B "    __u32 mnt_parent_id_old;"
+.B "    __u64 mnt_attr;"
+.B "    __u64 mnt_propagation;"
+.B "    __u64 mnt_peer_group;"
+.B "    __u64 mnt_master;"
+.B "    __u64 propagate_from;"
+.B "    __u32 mnt_root;"
+.B "    __u32 mnt_point;"
+.B "    char  str[];"
+.B };
+.EE
+.fi
+.P
+.IR Note :
+glibc provides no wrapper for
+.BR statmount (),
+necessitating the use of
+.BR syscall (2).
+.SH DESCRIPTION
+To access a mount's status,
+you must have CAP_SYS_ADMIN in the user namespace.
+.P
+This function returns information about a mount,
+storing it in the buffer pointed to by
+.IR statmountbuf .
+The returned buffer is a
+.I struct statmount
+with the fields filled in as described below.
+.P
+(Note that reserved space and padding is omitted.)
+.SS The mnt_id_req structure
+.I req.size
+is used by the kernel to determine which struct
+.I mnt_id_req
+is being passed in,
+it should always be set to sizeof(struct mnt_id req).
+.P
+.I req.mnt_id
+can be obtained from either
+.BR statx (2)
+using
+.B STATX_MNT_ID_UNIQUE
+or from
+.BR listmount (2)
+and is used as the identifier to query the status of the desired mount point.
+.P
+.I req.param
+is used to tell the kernel which fields the caller is interested in.
+It is an ORed combination of the following constants
+.P
+.in +4n
+.TS
+lBl.
+STATMOUNT_SB_BASIC	/* Want/got sb_... */
+STATMOUNT_MNT_BASIC	/* Want/got mnt_... */
+STATMOUNT_PROPAGATE_FROM	/* Want/got propagate_from */
+STATMOUNT_MNT_ROOT	/* Want/got mnt_root  */
+STATMOUNT_MNT_POINT	/* Want/got mnt_point */
+STATMOUNT_FS_TYPE	/* Want/got fs_type */
+.TE
+.in
+.P
+Note that,
+in general,
+the kernel does
+.I not
+reject values in
+.I req.param
+other than the above.
+(For an exception,
+see
+.B EINVAL
+in errors.)
+Instead,
+it simply informs the caller which values are supported
+by this kernel and filesystem via the
+.I statmount.mask
+field.
+Therefore,
+.I "do not"
+simply set
+.I req.param
+to
+.B UINT_MAX
+(all bits set),
+as one or more bits may,
+in the future,
+be used to specify an extension to the buffer.
+.SS The returned information
+The status information for the target mount is returned in the
+.I statmount
+structure pointed to by
+.IR statmountbuf .
+Included in this is
+.I size
+which indicates the size of the
+.I statmountbuf
+that was filled in,
+including any strings.
+.I mask
+which indicates what information in the structure has been filled in.
+.P
+It should be noted that the kernel may return fields that weren't requested
+and may fail to return fields that were requested,
+depending on what the backing file system and kernel supports.
+In either case,
+.I req.param
+will not be equal to
+.IR mask .
+.P
+Apart from
+.I mask
+(which is described above),
+the fields in the
+.I statmount
+structure are:
+.TP
+.I size
+The size of the returned
+.I statmountbuf
+structure.
+.TP
+.I sb_dev_major
+.TQ
+.I sb_dev_minor
+The device that is mounted at this mount point.
+.TP
+.I sb_magic
+The file system specific super block magic.
+.TP
+.I sb_flags
+The flags that are set on the super block,
+an ORed combination of
+.BR SB_RDONLY ,
+.BR SB_SYNCHRONOUS ,
+.BR SB_DIRSYNC ,
+.BR SB_LAZYTIME .
+.TP
+.I fs_type
+The offset to the location in the
+.I statmount.str
+buffer that contains the string representation of the mounted file system. It is
+a null-terminated string.
+.TP
+.I mnt_id
+The unique mount ID of the mount.
+.TP
+.I mnt_parent_id
+The unique mount ID of the parent mount point of this mount.
+If this is the root mount point then
+.IR mnt_id\~==\~parent_mount_id .
+.TP
+.I mnt_id_old
+This corresponds to the mount ID that is exported by
+.IR /proc/ pid /mountinfo .
+.TP
+.I mnt_parent_id_old
+This corresponds to the parent mount ID that is exported by
+.IR /proc/ pid /mountinfo .
+.TP
+.I mnt_attr
+The
+.B MOUNT_ATTR_
+flags set on this mount point.
+.TP
+.I mnt_propagation
+The mount propagation flags,
+which can be one of
+.BR MS_SHARED ,
+.BR MS_SLAVE ,
+.BR MS_PRIVATE ,
+.BR MS_UNBINDABLE .
+.TP
+.I mnt_peer_group
+The ID of the shared peer group.
+.TP
+.I mnt_master
+The mount point receives its propagation from this mount ID.
+.TP
+.I propagate_from
+The ID from the namespace we propagated from.
+.TP
+.I mnt_root
+The offset to the location in the
+.I statmount.str
+buffer that contains the string representation of the mount relative to the root
+of the file system.
+It is a NULL terminated string.
+.TP
+.I mnt_point
+The offset to the location in the
+.I statmount.str
+buffer that contains the string representation of the mount relative to the
+current root (ie if you are in a
+.BR chroot ).
+It is a NULL terminated string.
+.SH RETURN VALUE
+On success, zero is returned.
+On error, \-1 is returned, and
+.I errno
+is set to indicate the error.
+.SH ERRORS
+.TP
+.B EPERM
+Permission is denied for accessing this mount.
+.TP
+.B EFAULT
+.I req
+or
+.I statmountbuf
+is NULL or points to a location outside the process's
+accessible address space.
+.TP
+.B EINVAL
+Invalid flag specified in
+.IR flags .
+.TP
+.B EINVAL
+.I req
+is of insufficient size to be utilized.
+.B E2BIG
+.I req
+is too large,
+the limit is the architectures page size.
+.TP
+.B EOVERFLOW
+The size of
+.I statmountbuf
+is too small to contain either the
+.IR statmountbuf.fs_type ,
+.IR statmountbuf.mnt_root ,
+or
+.IR statmountbuf.mnt_point .
+Allocate a larger buffer and retry the call.
+.TP
+.B ENOENT
+The specified
+.I req.mnt_id
+doesn't exist.
+.TP
+.B ENOMEM
+Out of memory (i.e., kernel memory).
+.SH STANDARDS
+Linux.
+.SH SEE ALSO
+.BR listmount (2),
+.BR statx (2)
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v2 2/2] listmount.2: New page describing the listmount syscall
  2024-06-26 15:56 [PATCH v2 0/2] man-pages: add documentation for statmount/listmount Josef Bacik
  2024-06-26 15:56 ` [PATCH v2 1/2] statmount.2: New page describing the statmount syscall Josef Bacik
@ 2024-06-26 15:56 ` Josef Bacik
  2024-06-26 17:02 ` [PATCH v2 0/2] man-pages: add documentation for statmount/listmount Alejandro Colomar
  2 siblings, 0 replies; 11+ messages in thread
From: Josef Bacik @ 2024-06-26 15:56 UTC (permalink / raw)
  To: alx, linux-man, brauner, linux-fsdevel, mszeredi, kernel-team

Add some documentation for the new listmount syscall.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
---
 man/man2/listmount.2 | 114 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 114 insertions(+)
 create mode 100644 man/man2/listmount.2

diff --git a/man/man2/listmount.2 b/man/man2/listmount.2
new file mode 100644
index 000000000..4e046ef39
--- /dev/null
+++ b/man/man2/listmount.2
@@ -0,0 +1,114 @@
+'\" t
+.\" Copyright (c) 2024 Josef Bacik <josef@toxicpanda.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH listmount 2 (date) "Linux man-pages (unreleased)"
+.SH NAME
+listmount \- get a list of mount ID's
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.BR "#include <linux/mount.h>" "  /* Definition of struct mnt_id_req constants */"
+.B #include <unistd.h>
+.P
+.BI "int syscall(SYS_listmount, struct mnt_id_req * " req ,
+.BI "            u64 * " mnt_ids ", size_t " nr_mnt_ids ,
+.BI "            unsigned long " flags " );
+.P
+.B #include <linux/mount.h>
+.P
+.EX
+.B struct mnt_id_req {
+.BR "    __u32 size;" "    /* sizeof(struct mnt_id_req) */"
+.BR "    __u64 mnt_id;" "  /* The parent mnt_id being searched */"
+.BR "    __u64 param;" "   /* The next mnt_id we want to find */"
+.B };
+.EE
+.fi
+.P
+.IR Note :
+glibc provides no wrapper for
+.BR listmount (),
+necessitating the use of
+.BR syscall (2).
+.SH DESCRIPTION
+To access the mounts in your namespace,
+you must have CAP_SYS_ADMIN in the user namespace.
+.P
+This function returns a list of mount IDs under the
+.BR req.mnt_id .
+This is meant to be used in conjuction with
+.BR statmount (2)
+in order to provide a way to iterate and discover mounted file systems.
+.SS The mnt_id_req structure
+.I req.size
+is used by the kernel to determine which struct
+.I mnt_id_req
+is being passed in,
+it should always be set to sizeof(struct mnt_id req).
+.P
+.I req.mnt_id
+is the parent mnt_id that we will list from,
+which can either be
+.B LSMT_ROOT
+which means the root mount of the current mount namespace,
+or a mount ID obtained from either
+.BR statx (2)
+using
+.B STATX_MNT_ID_UNIQUE
+or from
+.BR listmount (2) .
+.P
+.I req.param
+is used to tell the kernel what mount ID to start the list from.
+This is useful if multiple calls to
+.BR listmount (2)
+are required.
+This can be set to the last mount ID returned + 1 in order to
+resume from a previous spot in the list.
+.SH RETURN VALUE
+On success, the number of entries filled into
+.I mnt_ids
+is returned, 0 if there are no more mounts left.
+On error, \-1 is returned, and
+.I errno
+is set to indicate the error.
+.SH ERRORS
+.TP
+.B EPERM
+Permission is denied for accessing this mount.
+.TP
+.B EFAULT
+.I req
+or
+.I mnt_ids
+is NULL or points to a location outside the process's
+accessible address space.
+.TP
+.B EINVAL
+Invalid flag specified in
+.IR flags .
+.TP
+.B EINVAL
+.I req
+is of insufficient size to be utilized.
+.B E2BIG
+.I req
+is too large,
+the limit is the architectures page size.
+.TP
+.B ENOENT
+The specified
+.I req.mnt_id
+doesn't exist.
+.TP
+.B ENOMEM
+Out of memory (i.e., kernel memory).
+.SH STANDARDS
+Linux.
+.SH SEE ALSO
+.BR statmount (2),
+.BR statx (2)
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/2] man-pages: add documentation for statmount/listmount
  2024-06-26 15:56 [PATCH v2 0/2] man-pages: add documentation for statmount/listmount Josef Bacik
  2024-06-26 15:56 ` [PATCH v2 1/2] statmount.2: New page describing the statmount syscall Josef Bacik
  2024-06-26 15:56 ` [PATCH v2 2/2] listmount.2: New page describing the listmount syscall Josef Bacik
@ 2024-06-26 17:02 ` Alejandro Colomar
  2024-06-26 18:04   ` Josef Bacik
  2 siblings, 1 reply; 11+ messages in thread
From: Alejandro Colomar @ 2024-06-26 17:02 UTC (permalink / raw)
  To: Josef Bacik; +Cc: linux-man, brauner, linux-fsdevel, mszeredi, kernel-team

[-- Attachment #1: Type: text/plain, Size: 1450 bytes --]

Hi Josef,

On Wed, Jun 26, 2024 at 11:56:06AM GMT, Josef Bacik wrote:
> V1: https://lore.kernel.org/linux-fsdevel/cover.1719341580.git.josef@toxicpanda.com/
> 
> v1->v2:
> - Dropped the statx patch as Alejandro already took it (thanks!)
> - Reworked everything to use semantic newlines
> - Addressed all of the comments on the statmount.2 man page
> 
> I'm still unable to run anything other than make check, and if I do `make -t
> lint-c-checkpatch` and then run make check lint build it fails almost
> immediately on other unrelated things, so I think I'm too dumb to know how to
> check these patches before I send them.  However I did my best to follow all of
> the suggestions.  Thanks,

I'm interested in learning what problems contributors face, so please
let me know those issues, if you don't mind.

You can

	$ make lint build check -j8 -k
	$ make lint build check

to see the full list of failures.

Have a lovely day!
Alex

> 
> Josef
> 
> Josef Bacik (2):
>   statmount.2: New page describing the statmount syscall
>   listmount.2: New page describing the listmount syscall
> 
>  man/man2/listmount.2 | 114 +++++++++++++++++
>  man/man2/statmount.2 | 289 +++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 403 insertions(+)
>  create mode 100644 man/man2/listmount.2
>  create mode 100644 man/man2/statmount.2
> 
> -- 
> 2.43.0
> 
> 

-- 
<https://www.alejandro-colomar.es/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/2] man-pages: add documentation for statmount/listmount
  2024-06-26 17:02 ` [PATCH v2 0/2] man-pages: add documentation for statmount/listmount Alejandro Colomar
@ 2024-06-26 18:04   ` Josef Bacik
  2024-06-26 18:41     ` Alejandro Colomar
  0 siblings, 1 reply; 11+ messages in thread
From: Josef Bacik @ 2024-06-26 18:04 UTC (permalink / raw)
  To: Alejandro Colomar
  Cc: linux-man, brauner, linux-fsdevel, mszeredi, kernel-team

On Wed, Jun 26, 2024 at 07:02:26PM +0200, Alejandro Colomar wrote:
> Hi Josef,
> 
> On Wed, Jun 26, 2024 at 11:56:06AM GMT, Josef Bacik wrote:
> > V1: https://lore.kernel.org/linux-fsdevel/cover.1719341580.git.josef@toxicpanda.com/
> > 
> > v1->v2:
> > - Dropped the statx patch as Alejandro already took it (thanks!)
> > - Reworked everything to use semantic newlines
> > - Addressed all of the comments on the statmount.2 man page
> > 
> > I'm still unable to run anything other than make check, and if I do `make -t
> > lint-c-checkpatch` and then run make check lint build it fails almost
> > immediately on other unrelated things, so I think I'm too dumb to know how to
> > check these patches before I send them.  However I did my best to follow all of
> > the suggestions.  Thanks,
> 
> I'm interested in learning what problems contributors face, so please
> let me know those issues, if you don't mind.
> 
> You can
> 
> 	$ make lint build check -j8 -k
> 	$ make lint build check
> 
> to see the full list of failures.

I captured the output of

make lint build check -j8 -k > out.txt 2>&1

and pasted it here

https://paste.centos.org/view/ed3387a9

Clang messes up a bunch for a variety of different pages.

Also I did hit some mandoc warnings on this series, I'll post a v3 in a moment
with those things fixed.  Thanks,

Josef

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/2] man-pages: add documentation for statmount/listmount
  2024-06-26 18:04   ` Josef Bacik
@ 2024-06-26 18:41     ` Alejandro Colomar
  2024-06-26 21:44       ` Josef Bacik
  0 siblings, 1 reply; 11+ messages in thread
From: Alejandro Colomar @ 2024-06-26 18:41 UTC (permalink / raw)
  To: Josef Bacik; +Cc: linux-man, brauner, linux-fsdevel, mszeredi, kernel-team

[-- Attachment #1: Type: text/plain, Size: 1356 bytes --]

Hi Josef,

On Wed, Jun 26, 2024 at 02:04:34PM GMT, Josef Bacik wrote:
> On Wed, Jun 26, 2024 at 07:02:26PM +0200, Alejandro Colomar wrote:
> > You can
> > 
> > 	$ make lint build check -j8 -k
> > 	$ make lint build check
> > 
> > to see the full list of failures.
> 
> I captured the output of
> 
> make lint build check -j8 -k > out.txt 2>&1

Hmmm, please do the following steps to have a cleaner log:

	## Let's see if the build system itself complains:
	$ make nothing >out0.txt

	## Skip checkpatch stuff:
	$ make -t lint-c-checkpatch

	## Make fast stuff that doesn't break:
	$ make lint build check -j8 -k >/dev/null 2>/dev/null

	## Now log the remaining errors:
	$ make lint build check >out.txt 2>&1

> and pasted it here
> 
> https://paste.centos.org/view/ed3387a9

BTW, you seem to also be missing cppcheck(1), which at least in Debian
is provided in the cppcheck package.  It also seems to be available in
Fedora, but I don't know if your system will have it.

> Clang messes up a bunch for a variety of different pages.

I suspect the Clang errors to be due to missing libbsd-dev.

> Also I did hit some mandoc warnings on this series, I'll post a v3 in a moment
> with those things fixed.  Thanks,

Thank you!

Have a lovely day!
Alex

> 
> Josef

-- 
<https://www.alejandro-colomar.es/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/2] man-pages: add documentation for statmount/listmount
  2024-06-26 18:41     ` Alejandro Colomar
@ 2024-06-26 21:44       ` Josef Bacik
  2024-06-26 21:50         ` Josef Bacik
  2024-06-26 21:58         ` Alejandro Colomar
  0 siblings, 2 replies; 11+ messages in thread
From: Josef Bacik @ 2024-06-26 21:44 UTC (permalink / raw)
  To: Alejandro Colomar
  Cc: linux-man, brauner, linux-fsdevel, mszeredi, kernel-team

On Wed, Jun 26, 2024 at 08:41:06PM +0200, Alejandro Colomar wrote:
> Hi Josef,
> 
> On Wed, Jun 26, 2024 at 02:04:34PM GMT, Josef Bacik wrote:
> > On Wed, Jun 26, 2024 at 07:02:26PM +0200, Alejandro Colomar wrote:
> > > You can
> > > 
> > > 	$ make lint build check -j8 -k
> > > 	$ make lint build check
> > > 
> > > to see the full list of failures.
> > 
> > I captured the output of
> > 
> > make lint build check -j8 -k > out.txt 2>&1
> 
> Hmmm, please do the following steps to have a cleaner log:
> 
> 	## Let's see if the build system itself complains:
> 	$ make nothing >out0.txt
> 
> 	## Skip checkpatch stuff:
> 	$ make -t lint-c-checkpatch
> 
> 	## Make fast stuff that doesn't break:
> 	$ make lint build check -j8 -k >/dev/null 2>/dev/null
> 
> 	## Now log the remaining errors:
> 	$ make lint build check >out.txt 2>&1
> 
> > and pasted it here
> > 
> > https://paste.centos.org/view/ed3387a9
> 
> BTW, you seem to also be missing cppcheck(1), which at least in Debian
> is provided in the cppcheck package.  It also seems to be available in
> Fedora, but I don't know if your system will have it.
> 
> > Clang messes up a bunch for a variety of different pages.
> 
> I suspect the Clang errors to be due to missing libbsd-dev.
> 

Ok well those two things fixed most of the errors, now I'm down to just this

https://paste.centos.org/view/acd71eb7

I'm on Fedora btw. Thanks,

Josef

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/2] man-pages: add documentation for statmount/listmount
  2024-06-26 21:44       ` Josef Bacik
@ 2024-06-26 21:50         ` Josef Bacik
  2024-06-26 22:02           ` Alejandro Colomar
  2024-06-26 21:58         ` Alejandro Colomar
  1 sibling, 1 reply; 11+ messages in thread
From: Josef Bacik @ 2024-06-26 21:50 UTC (permalink / raw)
  To: Alejandro Colomar
  Cc: linux-man, brauner, linux-fsdevel, mszeredi, kernel-team

On Wed, Jun 26, 2024 at 05:44:07PM -0400, Josef Bacik wrote:
> On Wed, Jun 26, 2024 at 08:41:06PM +0200, Alejandro Colomar wrote:
> > Hi Josef,
> > 
> > On Wed, Jun 26, 2024 at 02:04:34PM GMT, Josef Bacik wrote:
> > > On Wed, Jun 26, 2024 at 07:02:26PM +0200, Alejandro Colomar wrote:
> > > > You can
> > > > 
> > > > 	$ make lint build check -j8 -k
> > > > 	$ make lint build check
> > > > 
> > > > to see the full list of failures.
> > > 
> > > I captured the output of
> > > 
> > > make lint build check -j8 -k > out.txt 2>&1
> > 
> > Hmmm, please do the following steps to have a cleaner log:
> > 
> > 	## Let's see if the build system itself complains:
> > 	$ make nothing >out0.txt
> > 
> > 	## Skip checkpatch stuff:
> > 	$ make -t lint-c-checkpatch
> > 
> > 	## Make fast stuff that doesn't break:
> > 	$ make lint build check -j8 -k >/dev/null 2>/dev/null
> > 
> > 	## Now log the remaining errors:
> > 	$ make lint build check >out.txt 2>&1
> > 
> > > and pasted it here
> > > 
> > > https://paste.centos.org/view/ed3387a9
> > 
> > BTW, you seem to also be missing cppcheck(1), which at least in Debian
> > is provided in the cppcheck package.  It also seems to be available in
> > Fedora, but I don't know if your system will have it.
> > 
> > > Clang messes up a bunch for a variety of different pages.
> > 
> > I suspect the Clang errors to be due to missing libbsd-dev.
> > 
> 
> Ok well those two things fixed most of the errors, now I'm down to just this
> 
> https://paste.centos.org/view/acd71eb7
> 

Err that just shows the one error, this is all of them

https://paste.centos.org/view/b68c2fb1

Thanks,

Josef

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/2] man-pages: add documentation for statmount/listmount
  2024-06-26 21:44       ` Josef Bacik
  2024-06-26 21:50         ` Josef Bacik
@ 2024-06-26 21:58         ` Alejandro Colomar
  1 sibling, 0 replies; 11+ messages in thread
From: Alejandro Colomar @ 2024-06-26 21:58 UTC (permalink / raw)
  To: Josef Bacik; +Cc: linux-man, brauner, linux-fsdevel, mszeredi, kernel-team

[-- Attachment #1: Type: text/plain, Size: 763 bytes --]

Hi Josef,

On Wed, Jun 26, 2024 at 05:44:07PM GMT, Josef Bacik wrote:
> 
> Ok well those two things fixed most of the errors, now I'm down to just this
> 
> https://paste.centos.org/view/acd71eb7
> 

Nice; there seems to only be one error:

CLANG_TIDY      .tmp/man/man2/bind.2.d/bind.c.lint-c.clang-tidy.touch

I guess you have a newer version of clang-tidy(1).  I have

	$ clang-tidy --version
	Debian LLVM version 16.0.6
	  Optimized build.

You probably have 18 (or maybe 17).  I guess we'll get there more
eventually in Debian.

I don't see why it fails, so I'll have to wait for reproducing it.

> I'm on Fedora btw. Thanks,

Thank you!

Have a lovely night!
Alex

> 
> Josef
> 

-- 
<https://www.alejandro-colomar.es/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/2] man-pages: add documentation for statmount/listmount
  2024-06-26 21:50         ` Josef Bacik
@ 2024-06-26 22:02           ` Alejandro Colomar
  2024-06-26 22:06             ` Alejandro Colomar
  0 siblings, 1 reply; 11+ messages in thread
From: Alejandro Colomar @ 2024-06-26 22:02 UTC (permalink / raw)
  To: Josef Bacik; +Cc: linux-man, brauner, linux-fsdevel, mszeredi, kernel-team

[-- Attachment #1: Type: text/plain, Size: 413 bytes --]

On Wed, Jun 26, 2024 at 05:50:34PM GMT, Josef Bacik wrote:
> Err that just shows the one error, this is all of them
> 
> https://paste.centos.org/view/b68c2fb1

For skipping the cpplint(1) errors (I don't see cpplint(1) being
packaged for Fedora according to <pkgs.org>), you can do something
like with checkpatch:

	$ make -t lint-c-cpplint

Cheers,
Alex

-- 
<https://www.alejandro-colomar.es/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v2 0/2] man-pages: add documentation for statmount/listmount
  2024-06-26 22:02           ` Alejandro Colomar
@ 2024-06-26 22:06             ` Alejandro Colomar
  0 siblings, 0 replies; 11+ messages in thread
From: Alejandro Colomar @ 2024-06-26 22:06 UTC (permalink / raw)
  To: Josef Bacik; +Cc: linux-man, brauner, linux-fsdevel, mszeredi, kernel-team

[-- Attachment #1: Type: text/plain, Size: 961 bytes --]

On Thu, Jun 27, 2024 at 12:02:07AM GMT, Alejandro Colomar wrote:
> On Wed, Jun 26, 2024 at 05:50:34PM GMT, Josef Bacik wrote:
> > Err that just shows the one error, this is all of them
> > 
> > https://paste.centos.org/view/b68c2fb1
> 
> For skipping the cpplint(1) errors (I don't see cpplint(1) being
> packaged for Fedora according to <pkgs.org>), you can do something
> like with checkpatch:
> 
> 	$ make -t lint-c-cpplint

Ahh, now I see why those clang-diagnostic-empty-translation-unit errors.
The above trick is creating empty translation units.

So, you'll need to do the following steps:

	$ make clean
	$ make -j8 -k lint build check >/dev/null 2>/dev/null
	$ make -t lint-c-checkpatch lint-c-cpplint
	$ make -k lint build check >out.txt 2>&1

This makes sure that you only touch those files that can't be created
otherwise, and not some other intermediate files.

Cheers
Alex


-- 
<https://www.alejandro-colomar.es/>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-06-26 22:06 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-26 15:56 [PATCH v2 0/2] man-pages: add documentation for statmount/listmount Josef Bacik
2024-06-26 15:56 ` [PATCH v2 1/2] statmount.2: New page describing the statmount syscall Josef Bacik
2024-06-26 15:56 ` [PATCH v2 2/2] listmount.2: New page describing the listmount syscall Josef Bacik
2024-06-26 17:02 ` [PATCH v2 0/2] man-pages: add documentation for statmount/listmount Alejandro Colomar
2024-06-26 18:04   ` Josef Bacik
2024-06-26 18:41     ` Alejandro Colomar
2024-06-26 21:44       ` Josef Bacik
2024-06-26 21:50         ` Josef Bacik
2024-06-26 22:02           ` Alejandro Colomar
2024-06-26 22:06             ` Alejandro Colomar
2024-06-26 21:58         ` Alejandro Colomar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).