]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fs/pipe: stop duplicating union pipe_index declaration
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Thu, 23 Oct 2025 08:21:42 +0000 (10:21 +0200)
committerChristian Brauner <brauner@kernel.org>
Wed, 12 Nov 2025 11:18:56 +0000 (12:18 +0100)
Now that we build with -fms-extensions, union pipe_index can be
included as an anonymous member in struct pipe_inode_info, avoiding
the duplication.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Link: https://patch.msgid.link/20251023082142.2104456-1-linux@rasmusvillemoes.dk
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
include/linux/pipe_fs_i.h

index 9d42d473d201bb6faba744722c94d5bdc3b4c398..7f6a92ac970478f1f6a38156c6a4c0e0c176c45b 100644 (file)
@@ -44,11 +44,11 @@ typedef unsigned int pipe_index_t;
 typedef unsigned short pipe_index_t;
 #endif
 
-/*
- * We have to declare this outside 'struct pipe_inode_info',
- * but then we can't use 'union pipe_index' for an anonymous
- * union, so we end up having to duplicate this declaration
- * below. Annoying.
+/**
+ *     struct pipe_index - pipe indeces
+ *     @head: The point of buffer production
+ *     @tail: The point of buffer consumption
+ *     @head_tail: unsigned long union of @head and @tail
  */
 union pipe_index {
        unsigned long head_tail;
@@ -63,9 +63,7 @@ union pipe_index {
  *     @mutex: mutex protecting the whole thing
  *     @rd_wait: reader wait point in case of empty pipe
  *     @wr_wait: writer wait point in case of full pipe
- *     @head: The point of buffer production
- *     @tail: The point of buffer consumption
- *     @head_tail: unsigned long union of @head and @tail
+ *     @pipe_index: the pipe indeces
  *     @note_loss: The next read() should insert a data-lost message
  *     @max_usage: The maximum number of slots that may be used in the ring
  *     @ring_size: total number of buffers (should be a power of 2)
@@ -87,14 +85,7 @@ struct pipe_inode_info {
        struct mutex mutex;
        wait_queue_head_t rd_wait, wr_wait;
 
-       /* This has to match the 'union pipe_index' above */
-       union {
-               unsigned long head_tail;
-               struct {
-                       pipe_index_t head;
-                       pipe_index_t tail;
-               };
-       };
+       union pipe_index;
 
        unsigned int max_usage;
        unsigned int ring_size;