Re: [PATCH] blkgetsize64 ioctl

Ben LaHaise (bcrl@redhat.com)
Wed, 29 Aug 2001 20:16:34 -0400 (EDT)


On Wed, 29 Aug 2001, David S. Miller wrote:

> Any problems with using "u64" or some other more strictly portable
> type? "long long" and other non-fixed sized types cause grief for
> many dual-API platforms.

That's entirely doable; I used long long because the existing API used
long. In fact, thinking about it a bit more, it would be better to not
add the ioctl as _IO(0x12,109), but instead use 110 and reserve 108 and
109 as braindamage ioctl writeoff (except documented, unlike the current
silent usage of ioctls by ia64). I hate ioctls and binary
incompatibilities. Here's the modified patch (incompatible with
e2fsprogs 1.23, but not conflicting with ia64: ioctls that write to disk
are b0rken).

-ben

diff -urN /md0/kernels/2.4/v2.4.10-pre2/include/linux/fs.h work-v2.4.10-pre2/include/linux/fs.h
--- /md0/kernels/2.4/v2.4.10-pre2/include/linux/fs.h Wed Aug 29 18:28:50 2001
+++ work-v2.4.10-pre2/include/linux/fs.h Wed Aug 29 20:14:58 2001
@@ -166,7 +166,7 @@
#define BLKROSET _IO(0x12,93) /* set device read-only (0 = read-write) */
#define BLKROGET _IO(0x12,94) /* get read-only status (0 = read_write) */
#define BLKRRPART _IO(0x12,95) /* re-read partition table */
-#define BLKGETSIZE _IO(0x12,96) /* return device size */
+#define BLKGETSIZE _IO(0x12,96) /* return device size (long *arg) */
#define BLKFLSBUF _IO(0x12,97) /* flush buffer cache */
#define BLKRASET _IO(0x12,98) /* Set read ahead for block device */
#define BLKRAGET _IO(0x12,99) /* get current read ahead setting */
@@ -182,6 +182,8 @@
/* This was here just to show that the number is taken -
probably all these _IO(0x12,*) ioctls should be moved to blkpg.h. */
#endif
+/* _IO(0x12,108) and _IO(0x12,109) are reserved for binary compatibility */
+#define BLKGETSIZE64 _IO(0x12,110) /* return device size (u64 *arg) */

#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/