kern/142597: ext2fs does not work on filesystems with really big directories

vermaden vermaden at interia.pl
Sun Jan 10 21:40:02 UTC 2010


>Number:         142597
>Category:       kern
>Synopsis:       ext2fs does not work on filesystems with really big directories
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jan 10 21:40:01 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     vermaden
>Release:        8.0-RELEASE
>Organization:
>Environment:
FreeBSD  8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov 21 15:48:17 UTC 2009     root at almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386 
>Description:
Under Linux I created ext2fs filesystem with -I 128 option (inode size), used it on Linux for a while, now tried to mount and use it under FreeBSD, filesystem mounts, gives no errors on mount, but I cannot list or access contents of really big dorectories (with ls(1) for example), I am able to list/use smaller dirs on that filesystem for example.

Should not be a chipset support problem, because other disk works without a problem on this Intel Q35 chipset without any problems/timeouts.

Maybe its because these non default features of ext2 enabled on the Linux side:
- dir_index
- large_file

Regards,
vermaden
>How-To-Repeat:
# mount -t ext2fs /dev/ada1s1 /mnt/GREEN
# cd /mnt/GREEN
# ls small_dir
(contents ...)
# ls big_dir
(no output)

.. and dmesg(8) shows two lines (always two lines for single ls command on big directory:
g_vfs_done():ada1s1[READ(offset=-711084466176, length=4096)]error = 5
g_vfs_done():ada1s1[READ(offset=-711084466176, length=4096)]error = 5

~ % tune2fs -l /dev/ada1s1
tune2fs 1.41.8 (11-Jul-2009)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          d8e5e867-db65-499b-b158-1887bf718e45
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         not clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              91578368
Block count:              366284000
Reserved block count:     0
Free blocks:              232569649
Free inodes:              91511889
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      936
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   256
Filesystem created:       Fri Dec 18 19:34:50 2009
Last mount time:          Sat Jan  9 15:18:02 2010
Last write time:          Sat Jan  9 15:43:23 2010
Mount count:              0
Maximum mount count:      27
Last checked:             Sat Jan  9 15:18:02 2010
Check interval:           15552000 (6 months)
Next check after:         Thu Jul  8 16:18:02 2010
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group wheel)
First inode:              11
Inode size:               128
Default directory hash:   half_md4
Directory Hash Seed:      e48cf467-623f-4625-99c8-19c028a27620
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list