Changeset 768

Show
Ignore:
Timestamp:
03/09/07 23:10:10 (2 years ago)
Author:
hachi
Message:

Document hash usage and pick a couple better variable names.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/server/mogstored

    r767 r768  
    436436 
    437437    if (lc($^O) eq 'linux') { 
    438         my %name_to_number; 
    439         my %number_to_name; 
     438        # name_to_number and number_to_name are the data derived from /proc/partitions 
     439        my %name_to_number; # ( hda1 => 769,  ... ) 
     440        my %number_to_name; # ( 769  => hda1, ... ) 
    440441 
    441442        if (open my $partitions, '<', '/proc/partitions') { 
    442443            <$partitions>; <$partitions>; # First two lines are for humans 
    443444            while (my $line = <$partitions>) { 
    444                 my ($major, $minor, $devname) = $line =~ 
    445                     m/^ \s* (\d+) \s+ (\d+) \s+ \d+ \s+ (\S+) \s* $/x
     445                next unless $line =~ m/^ \s* (\d+) \s+ (\d+) \s+ \d+ \s+ (\S+) \s* $/x; 
     446                my ($major, $minor, $devname) = ($1, $2, $3)
    446447                my $devno = ($major << 8) + $minor; 
    447448                $name_to_number{$devname} = $devno; 
     
    452453        } 
    453454 
     455        # Iterate over the hash { 1 => 768 } meaning (mogile device dev1 points to os device 768) 
    454456        foreach my $mogdevid (keys %$map) { 
     457            # Look up the original device number 
    455458            my $original = $map->{$mogdevid}; 
     459 
     460            # See if there is a mapping to turn it into a device name (eg. hda1) 
    456461            my $devname = $number_to_name{$original} or next; 
    457             if (my ($new) = $devname =~ m/^([hs]d\w)\d+$/) { 
    458                 next unless $name_to_number{$new}; 
    459                 $map->{$mogdevid} = $name_to_number{$new}; 
     462 
     463            # Pull off the new device name with a regex 
     464            if (my ($newname) = $devname =~ m/^([hs]d\w)\d+$/) { 
     465                # Skip if we can't map it back to a device number 
     466                my $newnum = $name_to_number{$newname} or next; 
     467                $map->{$mogdevid} = $newnum; 
    460468            } 
    461469        }