Changeset 3447 in MondoRescue for branches/3.2/MondoRescue/lib/MondoRescue/Disk.pm
- Timestamp:
- Aug 30, 2015, 2:33:49 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.2/MondoRescue/lib/MondoRescue/Disk.pm
r3432 r3447 13 13 use ProjectBuilder::Base; 14 14 use English; 15 use MondoRescue::File; 15 16 16 17 # Inherit from the "Exporter" module which handles exporting functions. … … 22 23 23 24 our @ISA = qw(Exporter); 24 our @EXPORT = qw(mr_disk_type );25 our @EXPORT = qw(mr_disk_type mr_device_mounted); 25 26 26 27 =pod … … 66 67 67 68 69 =item B<mr_device_mounted> 70 71 This function returns the mount point if a device is mounted and undef if not. 72 73 =cut 74 75 sub mr_device_mounted { 76 77 my $device = shift; 78 79 return(1) if ((not defined $device) || ($device =~ "^/sys|^/proc")); 80 81 my $h = mr_file_read_all_link($device); 82 # Preserve that hash locally before earsing it to reuse another one 83 my $h2 = mr_file_copy_and_erase_hash($h); 84 85 foreach my $f (keys %$h2) { 86 pb_log(2,"Working on device $f\n"); 87 # TODO: get them from a conf file - FreeBSD needs swapinfo for swap request 88 foreach my $dev ("mount","cat /proc/swaps") { 89 # Look for the device in the command result 90 open(MOUNT,"$dev|") || die "Unable to execute the $dev command"; 91 while (<MOUNT>) { 92 my ($mntp,$void) = split('\s',$_,2); 93 $h = mr_file_read_all_link($mntp); 94 foreach my $m (keys %$h) { 95 pb_log(2,"== Working on mounted device $m\n"); 96 if ($m eq $f) { 97 # Find the mountpoint and return it 98 my ($void1,$mountpoint,$void2) = split('\s',$void); 99 pb_log(2,"*** Found $m on $mountpoint\n") if (defined $mountpoint); 100 return($mountpoint); 101 } 102 } 103 my $h3 = mr_file_copy_and_erase_hash($h); 104 } 105 close(MOUNT); 106 } 107 } 108 109 # Not found 110 return(undef); 111 }
Note:
See TracChangeset
for help on using the changeset viewer.