Print this page
5914 pipe generates inodes with ino > 4G

@@ -20,10 +20,13 @@
  */
 /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
 
 /*
  * Copyright (c) 1988, 2010, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Copyright 2017 Ivan Richwalski <ivan@seppuku.net>
+ *
  */
 
 /*
  * The routines defined in this file are supporting routines for FIFOFS
  * file system type.

@@ -550,16 +553,17 @@
         nvp2->v_rdev = fifodev;
 }
 
 /*
  * Attempt to establish a unique pipe id.  Only un-named pipes use this
- * routine.
+ * routine. Use a 32-bit ino_t so any 32-bit processes that aren't large
+ * file aware can still stat() a pipe fd and not fail with EOVERFLOW.
  */
 ino_t
 fifogetid(void)
 {
-        static ino_t fifo_ino = 0;
+        static ino32_t fifo_ino = 0;
         ino_t fino;
 
         mutex_enter(&fino_lock);
         fino = fifo_ino++;
         mutex_exit(&fino_lock);