In message <[EMAIL PROTECTED]>, [EMAIL PROTECTED] writes:
> I have downloaded kernel 2.6.25-git11, which is a snapshot dated
> 27th April. I got this as it seems to have many bugfixes from
> the 2.6.25 release on the 17th.
> 
> I patched with squashfs 3.3 and unionfs 2.3.3.
> 
> Compile stops with this error message:
> 
>   CC [M]  fs/unionfs/super.o
> fs/unionfs/super.c: In function 'unionfs_umount_begin':
> fs/unionfs/super.c:989: warning: passing argument 1 of
> 'lower_sb->s_op->umount_begin' from incompatible pointer type
> fs/unionfs/super.c:989: error: too many arguments to function
> 'lower_sb->s_op->umount_begin'
> fs/unionfs/super.c: At top level:
> fs/unionfs/super.c:1052: warning: initialization from incompatible pointer
> type
> make[2]: *** [fs/unionfs/super.o] Error 1
> make[1]: *** [fs/unionfs] Error 2
> make: *** [fs] Error 2
> 
> Regards,
> Barry Kauler

Barry,

2.6.26-rc1 was released moments ago, so hopefully 2.6.26 will start
stabilizing from now on, and there'd be less confusion online wrt to what
x.y.z-gitNN really belongs to.

Anyway, below is a patch for the changed ->umount_begin interface.  It
tested ok on my basic unionfs regressions.  I'm going to start extensive
testing on 2.6.26-rc1 now, including for this patch below.  I'll release the
next unionfs once I've run more tests on -rc1.

Cheers,
Erez.


diff --git a/fs/unionfs/super.c b/fs/unionfs/super.c
index 82b4045..b110760 100644
--- a/fs/unionfs/super.c
+++ b/fs/unionfs/super.c
@@ -961,32 +961,21 @@ static int unionfs_write_inode(struct inode *inode, int 
sync)
  * Used only in nfs, to kill any pending RPC tasks, so that subsequent
  * code can actually succeed and won't leave tasks that need handling.
  */
-static void unionfs_umount_begin(struct vfsmount *mnt, int flags)
+static void unionfs_umount_begin(struct super_block *sb)
 {
-       struct super_block *sb, *lower_sb;
-       struct vfsmount *lower_mnt;
+       struct super_block *lower_sb;
        int bindex, bstart, bend;
 
-       if (!(flags & MNT_FORCE))
-               /*
-                * we are not being MNT_FORCE'd, therefore we should emulate
-                * old behavior
-                */
-               return;
-
-       sb = mnt->mnt_sb;
-
        unionfs_read_lock(sb, UNIONFS_SMUTEX_CHILD);
 
        bstart = sbstart(sb);
        bend = sbend(sb);
        for (bindex = bstart; bindex <= bend; bindex++) {
-               lower_mnt = unionfs_lower_mnt_idx(sb->s_root, bindex);
                lower_sb = unionfs_lower_super_idx(sb, bindex);
 
-               if (lower_mnt && lower_sb && lower_sb->s_op &&
+               if (lower_sb && lower_sb->s_op &&
                    lower_sb->s_op->umount_begin)
-                       lower_sb->s_op->umount_begin(lower_mnt, flags);
+                       lower_sb->s_op->umount_begin(lower_sb);
        }
 
        unionfs_read_unlock(sb);
_______________________________________________
unionfs mailing list: http://unionfs.filesystems.org/
unionfs@mail.fsl.cs.sunysb.edu
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs

Reply via email to