[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bfree-prj 145] Re: mkfs ができない問題



浪花です.

Kernel ML にも送っています.

In "[bfree-prj 143] mkfs ができない問題", Sat, 17 Apr 1999 16:52:36 JST
	jnetwork@network.or.jp writes:

> Linuxの再インストールにとまどって遅れました。
> 
> ./mkfs /dev/hda3 80640 512 11484(成功)
> 
> ./mkfs /dev/hda3 80640 512 11483(失敗)
> superblock = 1, bitmap block = 20, inode block = 45932
> Segmentation fault (core dumped)

有難うございました.このメッセージをベースに mkfs.c を見直したとこ
ろ,怪しげなところを見つけたので修正してみました.

kernel/POSIX/mkfs の下で下記の patch を当ててみてください.
# 漢字が入っていますので,念のため EUC コードに変換した上でご利用
# ください.

----------------------------
*** mkfs.c.orig	Tue Sep  9 22:51:20 1997
--- mkfs.c	Sun Apr 18 17:54:45 1999
***************
*** 168,187 ****
    char	*buf;
    int	i;
  
!   buf = alloca (blocksize * 10);
!   bzero (buf, blocksize * 10);
    lseek (formatfd, blocksize * (super_block + boot_block), 0);
    for (i = 0; i < bitmap_block; i++)
      {
        write (formatfd, blocksize, buf);
      }
    lseek (formatfd, blocksize * (super_block + boot_block), 0);
    for (i = 0; i < (boot_block + super_block + bitmap_block + inode_block + 2); i++)
      {
        set_bit (buf, i);
      }
  
!   write (formatfd, buf, blocksize * 10);
  }
  
  
--- 168,189 ----
    char	*buf;
    int	i;
  
!   buf = alloca (blocksize * bitmap_block);
!   bzero (buf, blocksize * bitmap_block);
!   /* この部分は本当に必要? ここから */
    lseek (formatfd, blocksize * (super_block + boot_block), 0);
    for (i = 0; i < bitmap_block; i++)
      {
        write (formatfd, blocksize, buf);
      }
+   /* ここまで */
    lseek (formatfd, blocksize * (super_block + boot_block), 0);
    for (i = 0; i < (boot_block + super_block + bitmap_block + inode_block + 2); i++)
      {
        set_bit (buf, i);
      }
  
!   write (formatfd, buf, blocksize * bitmap_block);
  }
  
  
----------------------------

以下 Kerlne ML 向けです.コメントにも書きましたが,上記のコードで
は bzero した bitmap block を一旦全てディスクに書き出した後で,再
度,利用されているブロックに 1 を立てた bitmap block を書き出すこ
とになります.オリジナルのコードもそうなってますが,最後に一回だけ
書き出せば良いような気がするんですが....

この修正で間違っていなければ,どなたかソースにマージしてください 
(^^;).

---
(putprop '浪花 智英
    'affiliation  '(山口大学大学院 理工学研究科 環境共生工学専攻)
    'e-mail	  '(naniwa@mechgw.mech.yamaguchi-u.ac.jp))