- 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
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 |