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