[PATCH] IFS: Inode FileSystem

Suleiman Souhlal ssouhlal at FreeBSD.org
Sun Jun 5 18:03:19 GMT 2005


Hi,

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);
     fstat(fd, &st);
     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:// 
people.freebsd.org/~ssouhlal/testing/ifs-20050605-userland-2.diff .
(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  
big deal.
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?

Bye,
--
Suleiman Souhlal     | ssouhlal at vt.edu
The FreeBSD Project  | ssouhlal at FreeBSD.org



More information about the freebsd-fs mailing list