- english
- français
ReiserFS for FreeBSD
ReiserFS is a journalised filesystem, made by Hans Reiser (namesys.com). It's available for Linux, since the 2.4.x series, but FreeBSD has no support for it.
Since July 10, 2004, I work on a port of ReiserFS for FreeBSD 5-CURRENT. The main goal is to achieve a read-only support for a ReiserFS 3.6 partition. No write support is scheduled for now.
Download
Known issues
To get a list of known issues of this module, see the
Project status
section.
Version en développement
A mush faster mirror is available at this address: http://dumbbell.nerim.net/
ReiserFS for FreeBSD, version 0.1.6 (Thursday April 14, 2005)
Locking update to be in sync with 6-CURRENT.
For FreeBSD 6-CURRENT only.
Files :
ReiserFS for FreeBSD, version 0.1.5 (Thursday April 07, 2005)
NFS export support.
For FreeBSD 6-CURRENT only.
Files :
ReiserFS for FreeBSD, version 0.1.4 (Tuesday April 05, 2005)
Update to reflect recent changes in VFS.
For FreeBSD 6-CURRENT only.
Files :
ReiserFS for FreeBSD, version 0.1.3 (Thursday February 10, 2005)
Compilation bugfix.
Files :
ReiserFS for FreeBSD, version 0.1.2 (Monday February 7, 2005)
FreeBSD 6-CURRENT support.
Changes :
- Adapted to last changes of the VFS in 6-CURRENT
- Improved mmap(2), now a real one, not a frontend to read(2)
Files :
ReiserFS for FreeBSD, version 0.1.1 (Monday October 18, 2004)
Bugfix release.
Changes :
- Fixed several bugs leading to panic()
Files :
ReiserFS for FreeBSD, version 0.1.0 (Thursday August 26, 2004)
First public release.
What's new :
- Read-only support
- One can read files using both read(2) and mmap(2)
- Symlink support
- Inode cache
Files :
- reiserfs_for_freebsd-0.1.0.tar.bz2 (MD5 sum) (PGP signature)
- reiserfs_for_freebsd-0.1.0.tar.gz (MD5 sum) (PGP signature)
Installation
This module requires FreeBSD 5.x, and the kernel sources to compile it. It has been tested under FreeBSD 5.2.1-RELEASE, 5.2-CURRENT (several checkouts since the 5.2.1-RELEASE availability) and 6-CURRENT (dated August 23, 2004).
After the sources are uncompressed, you must run the usual make/make install:
freebsd# make freebsd# make install
The kernel module reiserfs.ko ans the command mount_reiserfs will be compiled and installed. As it uses FreeBSD's Makefiles, you can add the same variable to change compile and install parameters.
It would be better to make a port for this.
Project status
The module is base on ReiserFS sources from Linux 2.6.7, the most up-to-date the day I started the project.
On August 26, 2004, read-only is almost complete. It still lacks:
- NFS export
Here is the project status grid, based on the list of functions to be implemented to have a read-only support:
| Funcion | Description | Status |
|---|---|---|
| VFS_INIT(9) | Initialize the module, typically, prepare inode cache | Done |
| VFS_MOUNT(9) | Mount a partition into the given directory | Done |
| VFS_ROOT(9) | Return the struct vnode for the root node of the filesystem | Done |
| VFS_STATFS(9) | Read informations about the partition (fill a struct statfs) | Done |
| VFS_VGET(9) | Return a struct vnode base on a given inode number | |
| VFS_CHECKEXP(9) | Tell if the given mount point is exported | |
| VFS_FHTOVP(9) | Return a struct vnode corresponding to a given NFS handle | |
| VFS_VPTOFH(9) | Return a NFS handle correpsonding to a given struct vnode | |
| VFS_UNMOUNT(9) | Unmount a partition | Done |
| VFS_UNINIT(9) | Free module's resources, typically, delete the inode cache | Done |
| Function | Description | Status |
|---|---|---|
| VOP_ACCESS(9) | Check access rights for a given resource | Done |
| VOP_PATHCONF(9) | Give informations about file and directory names, etc. | Done |
| VOP_GETATTR(9) | Used by the stat(2) syscall | Done |
| VOP_LOOKUP(9) | Lookup a file/directory and return a struct vnode | Done |
| VOP_OPEN(9) | Open a file | Done |
| VOP_READ(9) | Read a file content | Done |
| VOP_READDIR(9) | Read the content of a directory (files and subdirs list) | Done |
| VOP_READLINK(9) | Read the link target | Done |
| VOP_BMAP | Convert a logical block number to a physical block number (for mmap(2)) | Done |
| VOP_STRATEGY(9) | Read a block, using its logical block number (for mmap(2)) | Done |
| VOP_INACTIVE(9) | Free an unsed vnode | Done |
| VOP_RECLAIM(9) | Recycle a vnode for another use | Done |