diff options
-rw-r--r-- | lib/blkdev.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/blkdev.c b/lib/blkdev.c index 824a87c40..aa323f218 100644 --- a/lib/blkdev.c +++ b/lib/blkdev.c @@ -138,6 +138,15 @@ blkdev_get_size(int fd, unsigned long long *bytes) } #endif /* HAVE_SYS_DISKLABEL_H */ + { + struct stat st; + + if (fstat(fd, &st) == 0 && S_ISREG(st.st_mode)) { + *bytes = st.st_size; + return 0; + } + } + *bytes = blkdev_find_size(fd); return 0; } |