Whamcloud - gitweb
ext2fs_get_device_size: Fix error handling
authorTheodore Ts'o <tytso@mit.edu>
Tue, 20 Jan 2009 18:37:47 +0000 (13:37 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 20 Jan 2009 18:37:47 +0000 (13:37 -0500)
The previous patch would return EFBIG for any failure called from
ext2fs_get_device_size2().  (I didn't merge this fix with the
preceeding commit to allow merges to happen more easily.)

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
lib/ext2fs/getsize.c

index 79fba59..23c8f12 100644 (file)
@@ -278,13 +278,14 @@ errcode_t ext2fs_get_device_size(const char *file, int blocksize,
 {
        errcode_t retval;
        blk64_t blocks;
-       retval = ext2fs_get_device_size2(file, blocksize, &blocks);
 
-       if (!retval && blocks < (1ULL << 32)) {
-               *retblocks = (blk_t) blocks;
+       retval = ext2fs_get_device_size2(file, blocksize, &blocks);
+       if (retval)
                return retval;
-       }
-       return EFBIG;
+       if (blocks >= (1ULL << 32))
+               return EFBIG;
+       *retblocks = (blk_t) blocks;
+       return 0;
 }
 
 #endif /* WIN32 */