Hi,
Concerning unionfs: building kernel-modules for unionfs should not be a
big thing. However, as far as I have tested, unionfs does not run 100%
stable with the SL kernel (2.6.9). For the LiveCD it is usable, but I
would not use it on a full productive system.
For the LiveCD I use unionfs version 1.0.14 with a patch for inode.c
(see below). After version 1.0.14 the design of unionfs was changed
significantly and newer versions were no longer running with kernel
2.6.9 - as far I have tested.
Recently, unionfs provides a version tree 1.1.x, which should run on
kernels 2.6.9 -2.6.15, see
http://www.fsl.cs.sunysb.edu/project-unionfs.html
Although I could compile version 1.1.5 against the kernel 2.6.9 and
mounting unionfs works, I get a "Inappropriate ioctl for device" error,
when using unionctl. I have written to the unionfs mailing list, but no
solution so far:
http://www.fsl.cs.sunysb.edu/pipermail/unionfs/2006-June/004579.html
If somebody has any idea or solution for this problem, I would be very
grateful!
It would also help to make the LiveCD more stable.
Meanwhile I can try to build some kernel-module rpms for testing.
Urs
---------------------------
$ diff -urNr unionfs-1.0.14 unionfs-1.0.14_patched
diff -urNr unionfs-1.0.14/inode.c unionfs-1.0.14_patched/inode.c
--- unionfs-1.0.14/inode.c 2005-09-15 20:55:43.000000000 +0200
+++ unionfs-1.0.14_patched/inode.c 2005-11-25 22:53:09.000000000 +0100
@@ -45,7 +45,7 @@
hidden_dentry = dtohd(dentry);
/* check if whiteout exists in this branch, i.e. lookup .wh.foo
first */
- name = KMALLOC(dentry->d_name.len + sizeof(".wh"), GFP_UNIONFS);
+ name = KMALLOC(dentry->d_name.len + sizeof(".wh."), GFP_UNIONFS);
if (!name) {
err = -ENOMEM;
goto out;
@@ -370,7 +370,7 @@
hidden_dentry = dtohd(dentry);
/* check if whiteout exists in this branch, i.e. lookup .wh.foo
first. If present, delete it */
- name = KMALLOC(dentry->d_name.len + sizeof(".wh"), GFP_UNIONFS);
+ name = KMALLOC(dentry->d_name.len + sizeof(".wh."), GFP_UNIONFS);
if (!name) {
err = -ENOMEM;
goto out;
@@ -506,7 +506,7 @@
hidden_dentry = dtohd(dentry);
// check if whiteout exists in this branch, i.e. lookup .wh.foo
first
- name = KMALLOC(dentry->d_name.len + sizeof(".wh"), GFP_UNIONFS);
+ name = KMALLOC(dentry->d_name.len + sizeof(".wh."), GFP_UNIONFS);
if (!name) {
err = -ENOMEM;
goto out;
@@ -673,7 +673,7 @@
hidden_dentry = dtohd(dentry);
// check if whiteout exists in this branch, i.e. lookup .wh.foo
first
- name = KMALLOC(dentry->d_name.len + sizeof(".wh"), GFP_UNIONFS);
+ name = KMALLOC(dentry->d_name.len + sizeof(".wh."), GFP_UNIONFS);
if (!name) {
err = -ENOMEM;
goto out;
Jeremy Sanders wrote:
> Hi -
>
> We've got a cluster server we'd like to use unionfs on. Does anyone
> have a nice kernel module package for this?
>
> I see it is used on the SL livecd.
>
> I also see there's a fuse-based version called FunionFS, but I don't
> know how well this works...
>
> http://funionfs.apiou.org/index.php?lng=en
>
> Jeremy
>
|