From: Davidlohr Bueso Date: Wed, 4 Jan 2012 23:02:06 +0000 (+0100) Subject: blkdev: add is_blkdev function X-Git-Tag: v2.21-rc1~71 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8150beac7ced4e35fef7a8db71caee72d455f180;p=thirdparty%2Futil-linux.git blkdev: add is_blkdev function We should have the most basic of checks in this library to see whether or not a block device is being used. Signed-off-by: Davidlohr Bueso --- diff --git a/include/blkdev.h b/include/blkdev.h index 1a9119d43d..6b18879761 100644 --- a/include/blkdev.h +++ b/include/blkdev.h @@ -86,6 +86,9 @@ struct hd_geometry { }; #endif +/* are we working with block device? */ +int is_blkdev(int fd); + /* Determine size in bytes */ off_t blkdev_find_size (int fd); diff --git a/lib/blkdev.c b/lib/blkdev.c index 9138b0d854..c59386d9c3 100644 --- a/lib/blkdev.c +++ b/lib/blkdev.c @@ -35,6 +35,12 @@ blkdev_valid_offset (int fd, off_t offset) { return 1; } +int is_blkdev(int fd) +{ + struct stat st; + return (fstat(fd, &st) == 0 && S_ISBLK(st.st_mode)); +} + off_t blkdev_find_size (int fd) { uintmax_t high, low = 0;