BLKSECTGET userland API breakage (2.4 and 2.6 incompatible)

From: Alexander Viro
Date: Thu Oct 13 2005 - 18:50:30 EST

[that had started as "BLKSECTGET 32bit compat is broken"]


all 2.4: BLKSECTGET takes long * and is supported by several block drivers
bio-14-pre9: Takes BLKSECTGET to drivers/block/blkpg.c, defining it for all
block drivers *AND* making it take unsigned short *
2.5.1-pre2: bio merge
all 2.[56] kernels since then: BLKSECTGET takes unsigned short *
32bit compat: unchanged since 2.4 and thus broken on 2.[56]
applications: we have seen ones using 2.6 ABI and getting buggered in
32bit compat. Most likely there are some using 2.4 ABI...

IMO the least painful variant is to switch 2.6 compat code to match
2.6 native (i.e. use COMPATIBLE_IOCTL()), leave 2.4 as-is and live
with the fact of userland ABI change between 2.4 and 2.6...

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at