[PATCH] IFS: Inode FileSystem

From: Suleiman Souhlal <ssouhlal_at_FreeBSD.org>
Date: Sun, 5 Jun 2005 14:03:10 -0400
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_at_) 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
Received on Sun Jun 05 2005 - 16:03:19 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:35 UTC