Hi guys,

Now I need your help. I've located the chunk of code that's failing but I have 
no idea what's exactly it is trying to do (see listing below). Obviously, it 
is testing for existence of all kernel modules for the filesystems listed 
in /proc/filesystem, but why is it failing if the corresponding module DOES 
EXIST? My Fedora 7 installation has support for all filesystems built as 
modules (I think this was the case for the last couple of years already), so 
the test ultimately fails. Still, I can't figure out how it might succeed at 
all and what is its purpose. And needless to say -- there is zero comments in 
the source code (how nice!).

Cheers,
Ivan

--- /usr/lib/systemimager/perl/SystemImager/UseYourOwnKernel.pm ---

        my @filesystems;
        my $fs;
        my $uname_r = get_uname_r();
        my $modules_dir = "/lib/modules/$uname_r";

        my $file = "/proc/filesystems";
        open(FILESYSTEMS,"<$file") or die("Couldn't open $file for reading.");
        while (<FILESYSTEMS>) {
                chomp;
                push (@filesystems, $_) if (m/(cramfs|ext2|ext3|reiserfs|xfs|
jfs)/);
        }
        close(FILESYSTEMS);
        # cramfs
        if ((grep { /cramfs/ } @filesystems)
                and (! -e "$modules_dir/kernel/fs/cramfs/cramfs.o")
                and (! -e "$modules_dir/kernel/fs/cramfs/cramfs.ko")
                and (! -e "$modules_dir/kernel/fs/cramfs/cramfs.ko.gz")
                ) {
                $fs = "cramfs";
        }
        # ext2
        elsif ((grep { /ext2/ } @filesystems)
                and (! -e "$modules_dir/kernel/fs/ext2/ext2.o")
                and (! -e "$modules_dir/kernel/fs/ext2/ext2.ko")
                and (! -e "$modules_dir/kernel/fs/ext2/ext2.ko.gz")
                ) {
                $fs = "ext2";
        }

        # ext3
        elsif ((grep { /ext3/ } @filesystems)
                and (! -e "$modules_dir/kernel/fs/ext3/ext3.o")
                and (! -e "$modules_dir/kernel/fs/ext3/ext3.ko")
                and (! -e "$modules_dir/kernel/fs/ext3/ext3.ko.gz")
                ) {
                $fs = "ext3";
        }
<...identical tests for other fs'es skipped...>
        unless(defined $fs) {

                die("Can't determine the appropriate filesystem to use for an 
initrd.");
        }

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Oscar-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oscar-devel

Reply via email to