X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=extras%2Fvolume_id%2Fvolume_id%2Fext.c;h=a3e20d3151eba9cc82d6927b5d1e055a421ea5fd;hb=7f0a5b80957844148d05ba5218c40b70910a6b49;hp=e80ac90ad62157a8adf30359de88c76ac1122af6;hpb=f3c14c68499d318b2beb56cee7c5f88f2c04dc62;p=elogind.git diff --git a/extras/volume_id/volume_id/ext.c b/extras/volume_id/volume_id/ext.c index e80ac90ad..a3e20d315 100644 --- a/extras/volume_id/volume_id/ext.c +++ b/extras/volume_id/volume_id/ext.c @@ -86,6 +86,13 @@ int volume_id_probe_ext(struct volume_id *id, uint64_t off) if (es->s_magic != cpu_to_le16(EXT_SUPER_MAGIC)) return -1; + bsize = 0x400 << le32_to_cpu(es->s_log_block_size); + dbg("ext blocksize 0x%zx", bsize); + if (bsize < EXT3_MIN_BLOCK_SIZE || bsize > EXT3_MAX_BLOCK_SIZE) { + dbg("invalid ext blocksize"); + return -1; + } + volume_id_set_label_raw(id, es->s_volume_name, 16); volume_id_set_label_string(id, es->s_volume_name, 16); volume_id_set_uuid(id, es->s_uuid, UUID_DCE); @@ -99,13 +106,6 @@ int volume_id_probe_ext(struct volume_id *id, uint64_t off) return 0; } - bsize = 0x200 << le32_to_cpu(es->s_log_block_size); - dbg("ext blocksize 0x%zx", bsize); - if (bsize < EXT3_MIN_BLOCK_SIZE || bsize > EXT3_MAX_BLOCK_SIZE) { - dbg("invalid ext blocksize"); - return -1; - } - /* check for ext2 / ext3 */ volume_id_set_usage(id, VOLUME_ID_FILESYSTEM); if ((le32_to_cpu(es->s_feature_compat) & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0)