[rfc] 64-bit inode numbers

Gleb Kurtsou gleb.kurtsou at gmail.com
Thu Jun 23 06:43:50 UTC 2011


On (22/06/2011 19:19), Garance A Drosehn wrote:
> On 1/20/11 7:41 AM, Gleb Kurtsou wrote:
> > I've updated the patch. New version is available here:
> > https://github.com/downloads/glk/freebsd-ino64/freebsd-ino64-patch-2011-01-20.tgz
> >
> > Changelog:
> > * Add fts, ftw, nftw compat shims in libc
> > * Place libc compat shims in separate files, don't hack original
> >    implementations.
> > * Fix dump/restore
> > * Use ino_t in UFS code (suggested by Kirk McKusick)
> > * Keep ufs_ino_t (32 bit) for boot2 not to increase size
> >    
> Sorry for replying to an older message, but a reply made in a different
> thread reminded me about this project...
> 
> Also, I may have asked this before.  In fact, I'm almost sure that I started
> a reply to this back in Jan/Feb, but my email client claims I never replied
> to this topic...
> 
> Are you increasing only the size of ino_t, or could you also look at
> increasing the size of dev_t?   (just curious...)

Sure. Incorporating as much of similar changes as possible is good.
I've added Kostik and Matthew to CC list, it's for them to decide.

dev_t on other OSes:
	NetBSD - uint64_t
	DragonFly - uint32_t
	Darwin - __int32_t 
	OpenSolaris - ulong_t
	Linux - __u32

Considering this I think 3rd party software is not ready for such
change.

Major/minor mapping to dev_t will get more complicated.

And the most important question: what would you want it for? As far as I
can see major/minor numbers are ignored nowadays, major is zero, minor
increases independently of device type:

crw-r--r--  1 root  wheel       0,  31 Jun 23 09:00 acpi
crw-r-----  1 root  operator    0,  74 Jun 23 09:00 ada0
crw-r-----  1 root  operator    0,  75 Jun 23 09:00 ada0s1
crw-r-----  1 root  operator    0,  76 Jun 23 09:00 ada0s2
crw-r-----  1 root  operator    0,  77 Jun 23 09:00 ada0s3
crw-r-----  1 root  operator    0,  81 Jun 23 09:00 ada0s3a
crw-r-----  1 root  operator    0,  82 Jun 23 09:00 ada0s3b
crw-r-----  1 root  operator    0,  83 Jun 23 09:00 ada0s3d
crw-r-----  1 root  operator    0,  78 Jun 23 09:00 ada0s4
crw-------  1 root  operator    0,  30 Jun 23 09:00 ata
crw-------  1 root  wheel       0,  34 Jun 23 09:00 atkbd0
crw-------  1 root  wheel       0,  25 Jun 23 09:01 bpf
lrwxr-xr-x  1 root  wheel            3 Jun 23 09:00 bpf0 -> bpf
crw-rw-rw-  1 root  wheel       0,  37 Jun 23 09:00 bpsm0
crw-r-----  1 root  operator    0,  73 Jun 23 09:00 cd0
crw-------  1 root  wheel       0,   6 Jun 23 09:01 console
crw-------  1 root  wheel       0,  54 Jun 23 09:00 consolectl
crw-rw-rw-  1 root  wheel       0,  17 Jun 23 09:00 ctty
crw-------  1 root  wheel       0,   5 Jun 23 09:00 devctl
cr--------  1 root  wheel       0,  70 Jun 23 09:00 devstat
crw-rw-rw-  1 root  wheel       0, 112 Jun 23 09:01 dsp0.0
crw-rw-rw-  1 root  wheel       0, 111 Jun 23 09:01 dsp1.0
crw-rw-rw-  1 root  wheel       0, 110 Jun 23 09:01 dsp2.0
crw-rw-rw-  1 root  wheel       0, 109 Jun 23 09:01 dsp3.0
crw-rw-rw-  1 root  wheel       0, 108 Jun 23 09:01 dsp4.0
lrwxr-xr-x  1 root  wheel           15 Jun 23 09:01 dumpdev -> /dev/label/swap
dr-xr-xr-x  2 root  wheel          512 Jun 23 09:00 ext2fs
dr-xr-xr-x  2 root  wheel          512 Jun 23 09:00 fd
crw-------  1 root  wheel       0,  19 Jun 23 09:00 fido
crw-r-----  1 root  operator    0,   3 Jun 23 09:00 geom.ctl
crw-------  1 root  wheel       0,  16 Jun 23 09:00 io
lrwxr-xr-x  1 root  wheel            6 Jun 23 09:00 kbd0 -> atkbd0
crw-------  1 root  wheel       0,   7 Jun 23 09:00 klog
crw-r-----  1 root  kmem        0,  21 Jun 23 09:00 kmem
dr-xr-xr-x  2 root  wheel          512 Jun 23 09:00 label
lrwxr-xr-x  1 root  wheel           12 Jun 23 09:01 log -> /var/run/log
crw-------  1 root  wheel       0,  63 Jun 23 09:00 mdctl
crw-r-----  1 root  kmem        0,  20 Jun 23 09:00 mem
crw-rw-rw-  1 root  wheel       0,  14 Jun 23 09:00 midistat
crw-rw-rw-  1 root  wheel       0,  58 Jun 23 09:00 mixer0
crw-rw-rw-  1 root  wheel       0,  59 Jun 23 09:00 mixer1
crw-rw-rw-  1 root  wheel       0,  60 Jun 23 09:00 mixer2
crw-rw-rw-  1 root  wheel       0,  61 Jun 23 09:00 mixer3
crw-rw-rw-  1 root  wheel       0,  62 Jun 23 09:00 mixer4
crw-------  1 root  kmem        0,  18 Jun 23 09:00 nfslock
dr-xr-xr-x  2 root  wheel          512 Jun 23 09:00 ntfs
crw-rw-rw-  1 root  wheel       0,  22 Jun 23 09:33 null
crw-rw-rw-  1 root  wheel       0,  32 Jun 23 09:00 nvidia0
crw-rw-rw-  1 root  wheel       0,  33 Jun 23 09:00 nvidiactl
crw-------  1 root  operator    0,  71 Jun 23 09:00 pass0
crw-------  1 root  operator    0,  72 Jun 23 09:00 pass1
crw-r--r--  1 root  wheel       0,  24 Jun 23 09:00 pci
crw-------  1 root  wheel       0, 103 Jun 23 09:01 pf
crw-rw-rw-  1 root  wheel       0,  36 Jun 23 09:00 psm0
crw-rw-rw-  1 root  wheel       0,  27 Jun 23 09:00 ptmx
dr-xr-xr-x  2 root  wheel          512 Jun 23 09:11 pts
crw-rw-rw-  1 root  wheel       0,  28 Jun 23 09:01 random
cr--r--r--  1 root  wheel       0,   4 Jun 23 09:00 sndstat
lrwxr-xr-x  1 root  wheel            4 Jun 23 09:00 stderr -> fd/2
lrwxr-xr-x  1 root  wheel            4 Jun 23 09:00 stdin -> fd/0
lrwxr-xr-x  1 root  wheel            4 Jun 23 09:00 stdout -> fd/1
crw-------  1 root  wheel       0,  15 Jun 23 09:00 sysmouse
crw-------  1 root  wheel       0,  38 Jun 23 09:01 ttyv0
crw-------  1 root  wheel       0,  39 Jun 23 09:01 ttyv1
crw-------  1 root  wheel       0,  40 Jun 23 09:01 ttyv2
crw-------  1 root  wheel       0,  41 Jun 23 09:01 ttyv3
crw-------  1 root  wheel       0,  42 Jun 23 09:01 ttyv4
crw-------  1 root  wheel       0,  43 Jun 23 09:01 ttyv5
crw-------  1 root  wheel       0,  44 Jun 23 09:01 ttyv6
crw-------  1 root  wheel       0,  45 Jun 23 09:01 ttyv7
crw-------  1 root  wheel       0,  46 Jun 23 09:00 ttyv8
crw-------  1 root  wheel       0,  47 Jun 23 09:00 ttyv9
crw-------  1 root  wheel       0,  48 Jun 23 09:00 ttyva
crw-------  1 root  wheel       0,  49 Jun 23 09:00 ttyvb
crw-------  1 root  wheel       0,  50 Jun 23 09:00 ttyvc
crw-------  1 root  wheel       0,  51 Jun 23 09:00 ttyvd
crw-------  1 root  wheel       0,  52 Jun 23 09:00 ttyve
crw-------  1 root  wheel       0,  53 Jun 23 09:00 ttyvf
dr-xr-xr-x  2 root  wheel          512 Jun 23 09:00 ufs
lrwxr-xr-x  1 root  wheel            9 Jun 23 09:00 ugen0.1 -> usb/0.1.0
lrwxr-xr-x  1 root  wheel            9 Jun 23 09:00 ugen0.2 -> usb/0.2.0
lrwxr-xr-x  1 root  wheel            9 Jun 23 09:00 ugen1.1 -> usb/1.1.0
lrwxr-xr-x  1 root  wheel            9 Jun 23 09:00 ugen1.2 -> usb/1.2.0
lrwxr-xr-x  1 root  wheel            9 Jun 23 09:00 ugen1.3 -> usb/1.3.0
crw-r--r--  1 root  operator    0,  98 Jun 23 09:00 ums0
lrwxr-xr-x  1 root  wheel            6 Jun 23 09:00 urandom -> random
dr-xr-xr-x  2 root  wheel          512 Jun 23 09:00 usb
crw-r--r--  1 root  operator    0,  56 Jun 23 09:00 usbctl
crw-------  1 root  wheel       0,  85 Jun 23 09:01 vboxnetctl
crw-------  1 root  operator    0,  57 Jun 23 09:00 xpt0
crw-rw-rw-  1 root  wheel       0,  23 Jun 23 09:00 zero
crw-rw-rw-  1 root  operator    0,  55 Jun 23 09:00 zfs

Thanks,
Gleb.


More information about the freebsd-fs mailing list