From 05a27b1d34fc566a3f11b086a4f6e7b7888b5406 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 29 Apr 2003 21:10:15 -0400 Subject: [PATCH] getsize.c (ext2fs_get_device_size): Allow windows code to get the resize for filesystems that are in regular files. --- lib/ext2fs/ChangeLog | 5 +++++ lib/ext2fs/getsize.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/lib/ext2fs/ChangeLog b/lib/ext2fs/ChangeLog index 5860aeb..6f1e0e4 100644 --- a/lib/ext2fs/ChangeLog +++ b/lib/ext2fs/ChangeLog @@ -1,3 +1,8 @@ +2003-04-29 Theodore Ts'o + + * getsize.c (ext2fs_get_device_size): Allow windows code to get + the resize for filesystems that are in regular files. + 2003-04-21 Theodore Ts'o * Release of E2fsprogs 1.33 diff --git a/lib/ext2fs/getsize.c b/lib/ext2fs/getsize.c index 39e471f..49a1bd9 100644 --- a/lib/ext2fs/getsize.c +++ b/lib/ext2fs/getsize.c @@ -57,6 +57,7 @@ errcode_t ext2fs_get_device_size(const char *file, int blocksize, PARTITION_INFORMATION pi; DISK_GEOMETRY gi; DWORD retbytes; + LARGE_INTEGER filesize; dev = CreateFile(file, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE , @@ -80,6 +81,9 @@ errcode_t ext2fs_get_device_size(const char *file, int blocksize, gi.SectorsPerTrack * gi.TracksPerCylinder * gi.Cylinders.QuadPart / blocksize; + + } else if (GetFileSizeEx(dev, &filesize)) { + *retblocks = filesize.QuadPart / blocksize; } CloseHandle(dev); -- 1.8.3.1