Bug 594777 - mkfs -j is not equivalent to mkfs.ext3 -j -- does not create maximal filesystems
Summary: mkfs -j is not equivalent to mkfs.ext3 -j -- does not create maximal filesystems
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: util-linux
Version: 5.5
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
: ---
Assignee: Karel Zak
QA Contact: qe-baseos-daemons
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-05-21 15:04 UTC by Chris Pepper
Modified: 2010-05-21 22:33 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-05-21 22:33:40 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Chris Pepper 2010-05-21 15:04:25 UTC
Description of problem:
mkfs -j should use mkfs.ext3, and support filesystems of 4194303 physical extents. Instead it uses mkfs.ext2, and fails with a confusing message.

Version-Release number of selected component (if applicable):
util-linux-2.13-0.52.el5_4.1

How reproducible:
Always.

Steps to Reproduce:
1. Create an LV of 4194303 PEs.
2. mkfs -j on that LV.
  
Actual results:
mkfs.ext2: Filesystem too large.  No more than 2**31-1 blocks
	 (8TB using a blocksize of 4k) are currently supported.

Expected results:
mkfs should actually execute "mkfs.ext3 -j", and create the FS.

Additional info:
[root@norimaki ~]# mkfs -j -L/noribeast2c /dev/noribeast2cd/noribeast2c
mke2fs 1.39 (29-May-2006)
mkfs.ext2: Filesystem too large.  No more than 2**31-1 blocks
	 (8TB using a blocksize of 4k) are currently supported.
[root@norimaki ~]# lvdisplay /dev/noribeast2cd/noribeast2c 
  --- Logical volume ---
  LV Name                /dev/noribeast2cd/noribeast2c
  VG Name                noribeast2cd
  LV UUID                m4IkT4-CIuN-gtcz-ShjN-GkIp-lJec-2TpvKd
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                16.00 TB
  Current LE             4194303
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:12
   
[root@norimaki ~]# mkfs.ext3 -j -L/noribeast2c /dev/noribeast2cd/noribeast2c
mke2fs 1.39 (29-May-2006)
Filesystem label=/noribeast2c
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2147483648 inodes, 4294966272 blocks
214748313 blocks (5.00%) reserved for the super user
First data block=0
131072 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 
	2560000000, 3855122432

Writing inode tables:   1529/131072
[root@norimaki ~]# mkfs -j -L/noribeast2c /dev/noribeast2cd/noribeast2c
mke2fs 1.39 (29-May-2006)
mkfs.ext2: Filesystem too large.  No more than 2**31-1 blocks
	 (8TB using a blocksize of 4k) are currently supported.
[root@norimaki ~]# mkfs -j -L/noribeast2c /dev/noribeast2cd/noribeast2c

Comment 1 Karel Zak 2010-05-21 17:53:01 UTC
(In reply to comment #0)
> mkfs -j should use mkfs.ext3

Why? See mkfs(8) man page, the default is ext2. The -j option is filesystem specific and it is not evaluated by the mkfs wrapper.

You have to use:

   mkfs -t ext3 -j -L/noribeast2c /dev/noribeast2cd/noribeast2c

I don't see any bug here.

Comment 2 Chris Pepper 2010-05-21 21:22:46 UTC
At an abstract level, RHEL should be able to mkfs a 15tb filesystem -- right now it cannot without user intervention (to specify ext3).

More specifically, sources such as mke2fs.8 make fuzz line between mke2fs and mkfs.ext3:

DESCRIPTION
       mke2fs is used to create an ext2/ext3 filesystem  (usually  in  a  disk
       partition).   device  is  the  special file corresponding to the device
       (e.g /dev/hdXX).  blocks-count is the number of blocks on  the  device.
       If  omitted,  mke2fs  automagically  figures  the file system size.  If
       called as mkfs.ext3 a journal is created as if the -j option was speci-
       fied.

It is confusing that maximum filesystem size depends on "-t ext2" vs. "-t ext3", although this could minimally be addressed by updating the error message to point users to "-t ext3".

mkfs.ext2: Filesystem too large.  No more than 2**31-1 blocks
  (8TB using a blocksize of 4k) are currently supported.

[root@norimaki ~]# ls -li /sbin/mke2fs /sbin/mkfs.ext?
1457463 -rwxr-xr-x 3 root root 49608 Sep  3  2009 /sbin/mke2fs
1457463 -rwxr-xr-x 3 root root 49608 Sep  3  2009 /sbin/mkfs.ext2
1457463 -rwxr-xr-x 3 root root 49608 Sep  3  2009 /sbin/mkfs.ext3

Comment 3 Karel Zak 2010-05-21 22:33:40 UTC
(In reply to comment #2)
> At an abstract level, RHEL should be able to mkfs a 15tb filesystem -- right
> now it cannot without user intervention (to specify ext3).

 The feature depends on filesystem type. The default filesystem for mkfs(8) is ext2. This behaviour dis escribed in the man page.

I don't think that change any default which is used for years is a good idea.

Closing. Please, if you believe that the problem should be fixed then ask for help at official Red Hat support service -- for more details see http://support.redhat.com. Thanks.


Note You need to log in before you can comment on or make changes to this bug.