diff options
Diffstat (limited to 'fdisk/partname.c')
-rw-r--r-- | fdisk/partname.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/fdisk/partname.c b/fdisk/partname.c index 8f60b718..7c71c0dd 100644 --- a/fdisk/partname.c +++ b/fdisk/partname.c @@ -43,3 +43,28 @@ partname(char *dev, int pno, int lth) { return bufp; } +int +is_probably_full_disk(char *name) { +#ifdef HDIO_GETGEO + struct hd_geometry geometry; + int fd, i = 0; + + fd = open(name, O_RDONLY); + if (fd >= 0) { + i = ioctl(fd, HDIO_GETGEO, &geometry); + close(fd); + } + if (i==0) + return (fd >= 0 && geometry.start == 0); +#endif + /* + * The "silly heuristic" is still sexy for us, because + * for example Xen doesn't implement HDIO_GETGEO for virtual + * block devices (/dev/xvda). + * + * -- kzak@redhat.com (23-Feb-2006) + */ + while (*name) + name++; + return !isdigit(name[-1]); +} |