[PATCH] IFS: Inode FileSystem
ssouhlal at FreeBSD.org
Sun Jun 5 18:03:19 GMT 2005
IFS is basically FFS, minus the namespace. Files are referenced by
their inode number, thus making file lookup very fast. This is very
useful for things that keep the file names in their own database
anyway, such as web or news caches.
Files are created by opening the "newfile" file:
fd = open("newfile", O_CREAT|O_RDWR, 0644);
printf("new file is %d\n", (int)st.st_ino);
Once a file has been created it is possible to accessing by just
opening it the file named after the inode number. For example:
fd = open("5", O_RDWR);
This filesystem was imported back in the year 2000, by Adrian Chadd
(adrian@) and removed in 2002, before the introduction of UFS2 in
order not to slow down the development of UFS2.
I have fixed it so that it is usable on -CURRENT. You can find the
kernel bits at http://people.freebsd.org/~ssouhlal/testing/
ifs-20050605-2.diff and the userland bits at http://
(You need to copy src/sbin/fsck_ffs to src/sbin/fsck_ifs and src/sbin/
mount_ufs to src/sbin/mount_ifs, before applying the userland patch).
You can use the regular newfs(8) to create such a filesystem. You
might also want to specify the -n option, so that the .snap directory
is not created at newfs, since directories are useless, in IFS. If
you don't you'll end up with a useless inode, which is not really a
Once the filesystem is created, you can mount it with mount_ifs.
You can find additional comments in src/sys/ufs/ifs/README in the patch.
Is anyone interested in seeing this committed?
Suleiman Souhlal | ssouhlal at vt.edu
The FreeBSD Project | ssouhlal at FreeBSD.org
More information about the freebsd-fs