e2fsprogs 1.12 i patch do kernela 2.1.x

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Pią, 27 Lis 1998, 19:30:51 CET


Wydaje mi się że patch jaki jest obecnie w e2fsprogs 1.12 do devel jest
zrobiony niepoprawnie.

Obecny wygląda tak:

diff -Nur e2fsprogs-1.12/misc/mke2fs.c e2fsprogs-1.12.orig/misc/mke2fs.c
--- e2fsprogs-1.12/misc/mke2fs.c        Fri Jun 19 18:14:32 1998
+++ e2fsprogs-1.12.orig/misc/mke2fs.c   Sun Nov  1 18:27:17 1998
@@ -139,7 +139,7 @@
                return;
        } else if ((MAJOR(s.st_rdev) == HD_MAJOR &&
                    MINOR(s.st_rdev)%64 == 0) ||
-                  (MAJOR(s.st_rdev) == SCSI_DISK_MAJOR &&
+                  (MAJOR(s.st_rdev) == SCSI_DISK0_MAJOR &&
                    MINOR(s.st_rdev)%16 == 0)) {
                printf("%s is entire device, not just one partition!\n", 
                       device_name);

A moim zdaniem powinno to być raczej:

diff -Nur e2fsprogs-1.12/misc/mke2fs.c e2fsprogs-1.12.orig/misc/mke2fs.c
--- e2fsprogs-1.12/misc/mke2fs.c        Fri Jun 19 18:14:32 1998
+++ e2fsprogs-1.12.orig/misc/mke2fs.c   Sun Nov  1 18:27:17 1998
@@ -139,7 +139,7 @@
                return;
        } else if ((MAJOR(s.st_rdev) == HD_MAJOR &&
                    MINOR(s.st_rdev)%64 == 0) ||
-                  (MAJOR(s.st_rdev) == SCSI_DISK_MAJOR &&
+                  SCSI_DISK_MAJOR(MAJOR(s.st_rdev)) &&
                    MINOR(s.st_rdev)%16 == 0)) {
                printf("%s is entire device, not just one partition!\n", 
                       device_name);

Czy ta modyfikacja była konsultowana z maintainerem e2fsprogs ?
Wojtkowa modyfikacja z tego co mi wychodzi będzie chyba poprawnie
działać tylko dla pierwszego dysku SCSI ale już wyżej nie i będzie kupa.
Wogóle trzebaby to jeszcze obmakrować sprawdzając wersję źródeł kernela
sprawdzając LINUX_VERSION_CODE.

Krzysiek i inni którzy czują się na siłach to przeanalizować .. 
co Wy na to(?), bo moim zdaniem powinno być jednak inaczej gdyż makro
SCSI_DISK_MAJOR sprawdza czy urządzenie którego major jest sprawdzany to
urządzenie SCSI. Fragment z include/linux/major.h:

/*
 * Tests for SCSI devices.
 */

#define SCSI_DISK_MAJOR(M) ((M) == SCSI_DISK0_MAJOR || \
  ((M) >= SCSI_DISK1_MAJOR && (M) <= SCSI_DISK7_MAJOR))

kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*



Więcej informacji o liście dyskusyjnej pld-devel-pl