packages (Titanium): kernel-desktop/kernel-desktop-unionfs.patch - updated ...
shadzik
shadzik at pld-linux.org
Thu Oct 21 13:58:51 CEST 2010
Author: shadzik Date: Thu Oct 21 11:58:51 2010 GMT
Module: packages Tag: Titanium
---- Log message:
- updated for 2.6.36
---- Files affected:
packages/kernel-desktop:
kernel-desktop-unionfs.patch (1.2.2.8 -> 1.2.2.9)
---- Diffs:
================================================================
Index: packages/kernel-desktop/kernel-desktop-unionfs.patch
diff -u packages/kernel-desktop/kernel-desktop-unionfs.patch:1.2.2.8 packages/kernel-desktop/kernel-desktop-unionfs.patch:1.2.2.9
--- packages/kernel-desktop/kernel-desktop-unionfs.patch:1.2.2.8 Tue Aug 10 11:19:59 2010
+++ packages/kernel-desktop/kernel-desktop-unionfs.patch Thu Oct 21 13:58:46 2010
@@ -1,55 +1,7 @@
-
-This is a rebase to 2.6.35 of the upstream unionfs-2.5.4_for_2.6.34-rc0.diff.gz
-
-Signed-off-by: Thomas Backlund <tmb at mandriva.org>
-
- Documentation/filesystems/00-INDEX | 2
- Documentation/filesystems/unionfs/00-INDEX | 10
- Documentation/filesystems/unionfs/concepts.txt | 287 ++++++
- Documentation/filesystems/unionfs/issues.txt | 28
- Documentation/filesystems/unionfs/rename.txt | 31
- Documentation/filesystems/unionfs/usage.txt | 134 +++
- MAINTAINERS | 8
- fs/Kconfig | 1
- fs/Makefile | 1
- fs/namei.c | 1
- fs/splice.c | 20
- fs/stack.c | 14
- fs/unionfs/Kconfig | 24
- fs/unionfs/Makefile | 17
- fs/unionfs/commonfops.c | 896 +++++++++++++++++++++
- fs/unionfs/copyup.c | 897 +++++++++++++++++++++
- fs/unionfs/debug.c | 533 ++++++++++++
- fs/unionfs/dentry.c | 397 +++++++++
- fs/unionfs/dirfops.c | 302 +++++++
- fs/unionfs/dirhelper.c | 158 +++
- fs/unionfs/fanout.h | 407 +++++++++
- fs/unionfs/file.c | 380 +++++++++
- fs/unionfs/inode.c | 1055 +++++++++++++++++++++++++
- fs/unionfs/lookup.c | 569 +++++++++++++
- fs/unionfs/main.c | 758 +++++++++++++++++
- fs/unionfs/mmap.c | 89 ++
- fs/unionfs/rdstate.c | 285 ++++++
- fs/unionfs/rename.c | 517 ++++++++++++
- fs/unionfs/sioq.c | 101 ++
- fs/unionfs/sioq.h | 91 ++
- fs/unionfs/subr.c | 95 ++
- fs/unionfs/super.c | 1047 ++++++++++++++++++++++++
- fs/unionfs/union.h | 670 +++++++++++++++
- fs/unionfs/unlink.c | 278 ++++++
- fs/unionfs/whiteout.c | 584 +++++++++++++
- fs/unionfs/xattr.c | 173 ++++
- include/linux/fs_stack.h | 14
- include/linux/magic.h | 2
- include/linux/namei.h | 1
- include/linux/splice.h | 5
- include/linux/union_fs.h | 22
- security/security.c | 1
- 42 files changed, 10894 insertions(+), 11 deletions(-)
-
-diff -Nurp linux-2.6.35-rc6-git//Documentation/filesystems/00-INDEX linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/00-INDEX
---- linux-2.6.35-rc6-git//Documentation/filesystems/00-INDEX 2010-05-17 00:17:36.000000000 +0300
-+++ linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/00-INDEX 2010-07-30 15:50:42.994235028 +0300
+diff --git a/Documentation/filesystems/00-INDEX b/Documentation/filesystems/00-INDEX
+index 4303614..5ade4a8 100644
+--- a/Documentation/filesystems/00-INDEX
++++ b/Documentation/filesystems/00-INDEX
@@ -112,6 +112,8 @@ udf.txt
- info and mount options for the UDF filesystem.
ufs.txt
@@ -59,9 +11,11 @@
vfat.txt
- info on using the VFAT filesystem used in Windows NT and Windows 95
vfs.txt
-diff -Nurp linux-2.6.35-rc6-git//Documentation/filesystems/unionfs/00-INDEX linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/unionfs/00-INDEX
---- linux-2.6.35-rc6-git//Documentation/filesystems/unionfs/00-INDEX 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/unionfs/00-INDEX 2010-07-30 15:50:42.994235028 +0300
+diff --git a/Documentation/filesystems/unionfs/00-INDEX b/Documentation/filesystems/unionfs/00-INDEX
+new file mode 100644
+index 0000000..96fdf67
+--- /dev/null
++++ b/Documentation/filesystems/unionfs/00-INDEX
@@ -0,0 +1,10 @@
+00-INDEX
+ - this file.
@@ -73,9 +27,11 @@
+ - Information regarding rename operations.
+usage.txt
+ - Usage information and examples.
-diff -Nurp linux-2.6.35-rc6-git//Documentation/filesystems/unionfs/concepts.txt linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/unionfs/concepts.txt
---- linux-2.6.35-rc6-git//Documentation/filesystems/unionfs/concepts.txt 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/unionfs/concepts.txt 2010-07-30 15:50:42.994947708 +0300
+diff --git a/Documentation/filesystems/unionfs/concepts.txt b/Documentation/filesystems/unionfs/concepts.txt
+new file mode 100644
+index 0000000..b853788
+--- /dev/null
++++ b/Documentation/filesystems/unionfs/concepts.txt
@@ -0,0 +1,287 @@
+Unionfs 2.x CONCEPTS:
+=====================
@@ -364,9 +320,11 @@
+branch is marked read-only by unionfs, then a copyup will take place.)
+
+For more information, see <http://unionfs.filesystems.org/>.
-diff -Nurp linux-2.6.35-rc6-git//Documentation/filesystems/unionfs/issues.txt linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/unionfs/issues.txt
---- linux-2.6.35-rc6-git//Documentation/filesystems/unionfs/issues.txt 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/unionfs/issues.txt 2010-07-30 15:50:42.994947708 +0300
+diff --git a/Documentation/filesystems/unionfs/issues.txt b/Documentation/filesystems/unionfs/issues.txt
+new file mode 100644
+index 0000000..f4b7e7e
+--- /dev/null
++++ b/Documentation/filesystems/unionfs/issues.txt
@@ -0,0 +1,28 @@
+KNOWN Unionfs 2.x ISSUES:
+=========================
@@ -396,9 +354,11 @@
+ from Lockdep, please report them to the Unionfs maintainers.
+
+For more information, see <http://unionfs.filesystems.org/>.
-diff -Nurp linux-2.6.35-rc6-git//Documentation/filesystems/unionfs/rename.txt linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/unionfs/rename.txt
---- linux-2.6.35-rc6-git//Documentation/filesystems/unionfs/rename.txt 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/unionfs/rename.txt 2010-07-30 15:50:42.994947708 +0300
+diff --git a/Documentation/filesystems/unionfs/rename.txt b/Documentation/filesystems/unionfs/rename.txt
+new file mode 100644
+index 0000000..e20bb82
+--- /dev/null
++++ b/Documentation/filesystems/unionfs/rename.txt
@@ -0,0 +1,31 @@
+Rename is a complex beast. The following table shows which rename(2) operations
+should succeed and which should fail.
@@ -431,9 +391,11 @@
+2) Rename source to destination
+3) Make destination opaque to prevent anything under it from showing up
+
-diff -Nurp linux-2.6.35-rc6-git//Documentation/filesystems/unionfs/usage.txt linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/unionfs/usage.txt
---- linux-2.6.35-rc6-git//Documentation/filesystems/unionfs/usage.txt 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//Documentation/filesystems/unionfs/usage.txt 2010-07-30 15:50:42.994947708 +0300
+diff --git a/Documentation/filesystems/unionfs/usage.txt b/Documentation/filesystems/unionfs/usage.txt
+new file mode 100644
+index 0000000..1adde69
+--- /dev/null
++++ b/Documentation/filesystems/unionfs/usage.txt
@@ -0,0 +1,134 @@
+Unionfs is a stackable unification file system, which can appear to merge
+the contents of several directories (branches), while keeping their physical
@@ -569,9 +531,29 @@
+
+
+For more information, see <http://unionfs.filesystems.org/>.
-diff -Nurp linux-2.6.35-rc6-git//fs/Kconfig linux-2.6.35-rc6-git-unionfs//fs/Kconfig
---- linux-2.6.35-rc6-git//fs/Kconfig 2010-05-17 00:17:36.000000000 +0300
-+++ linux-2.6.35-rc6-git-unionfs//fs/Kconfig 2010-07-30 15:50:42.995947739 +0300
+diff --git a/MAINTAINERS b/MAINTAINERS
+index df34283..559779b 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -5877,6 +5877,14 @@ F: Documentation/cdrom/
+ F: drivers/cdrom/cdrom.c
+ F: include/linux/cdrom.h
+
++UNIONFS
++P: Erez Zadok
++M: ezk at cs.sunysb.edu
++L: unionfs at filesystems.org
++W: http://unionfs.filesystems.org/
++T: git git.kernel.org/pub/scm/linux/kernel/git/ezk/unionfs.git
++S: Maintained
++
+ UNSORTED BLOCK IMAGES (UBI)
+ M: Artem Bityutskiy <dedekind1 at gmail.com>
+ W: http://www.linux-mtd.infradead.org/
+diff --git a/fs/Kconfig b/fs/Kconfig
+index 3d18530..65b6aa1 100644
+--- a/fs/Kconfig
++++ b/fs/Kconfig
@@ -169,6 +169,7 @@ if MISC_FILESYSTEMS
source "fs/adfs/Kconfig"
source "fs/affs/Kconfig"
@@ -580,9 +562,10 @@
source "fs/hfs/Kconfig"
source "fs/hfsplus/Kconfig"
source "fs/befs/Kconfig"
-diff -Nurp linux-2.6.35-rc6-git//fs/Makefile linux-2.6.35-rc6-git-unionfs//fs/Makefile
---- linux-2.6.35-rc6-git//fs/Makefile 2010-07-30 14:05:39.182947749 +0300
-+++ linux-2.6.35-rc6-git-unionfs//fs/Makefile 2010-07-30 15:50:42.995947739 +0300
+diff --git a/fs/Makefile b/fs/Makefile
+index e6ec1d3..787332e 100644
+--- a/fs/Makefile
++++ b/fs/Makefile
@@ -84,6 +84,7 @@ obj-$(CONFIG_ISO9660_FS) += isofs/
obj-$(CONFIG_HFSPLUS_FS) += hfsplus/ # Before hfs to find wrapped HFS+
obj-$(CONFIG_HFS_FS) += hfs/
@@ -591,10 +574,11 @@
obj-$(CONFIG_VXFS_FS) += freevxfs/
obj-$(CONFIG_NFS_FS) += nfs/
obj-$(CONFIG_EXPORTFS) += exportfs/
-diff -Nurp linux-2.6.35-rc6-git//fs/namei.c linux-2.6.35-rc6-git-unionfs//fs/namei.c
---- linux-2.6.35-rc6-git//fs/namei.c 2010-07-30 14:05:39.270978942 +0300
-+++ linux-2.6.35-rc6-git-unionfs//fs/namei.c 2010-07-30 15:50:42.995947739 +0300
-@@ -386,6 +386,7 @@ void release_open_intent(struct nameidat
+diff --git a/fs/namei.c b/fs/namei.c
+index 24896e8..db22420 100644
+--- a/fs/namei.c
++++ b/fs/namei.c
+@@ -385,6 +385,7 @@ void release_open_intent(struct nameidata *nd)
else
fput(nd->intent.open.file);
}
@@ -602,10 +586,11 @@
static inline struct dentry *
do_revalidate(struct dentry *dentry, struct nameidata *nd)
-diff -Nurp linux-2.6.35-rc6-git//fs/splice.c linux-2.6.35-rc6-git-unionfs//fs/splice.c
---- linux-2.6.35-rc6-git//fs/splice.c 2010-07-30 14:05:39.323970675 +0300
-+++ linux-2.6.35-rc6-git-unionfs//fs/splice.c 2010-07-30 16:16:25.730042698 +0300
-@@ -1104,8 +1104,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+diff --git a/fs/splice.c b/fs/splice.c
+index 8f1dfae..7a57fab 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1092,8 +1092,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
/*
* Attempt to initiate a splice from pipe to file.
*/
@@ -616,7 +601,7 @@
{
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
loff_t *, size_t, unsigned int);
-@@ -1128,13 +1128,14 @@ static long do_splice_from(struct pipe_i
+@@ -1116,13 +1116,14 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
return splice_write(pipe, out, ppos, len, flags);
}
@@ -634,7 +619,7 @@
{
ssize_t (*splice_read)(struct file *, loff_t *,
struct pipe_inode_info *, size_t, unsigned int);
-@@ -1154,6 +1155,7 @@ static long do_splice_to(struct file *in
+@@ -1142,6 +1143,7 @@ static long do_splice_to(struct file *in, loff_t *ppos,
return splice_read(in, ppos, pipe, len, flags);
}
@@ -642,7 +627,7 @@
/**
* splice_direct_to_actor - splices data directly between two non-pipes
-@@ -1223,7 +1225,7 @@ ssize_t splice_direct_to_actor(struct fi
+@@ -1211,7 +1213,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
size_t read_len;
loff_t pos = sd->pos, prev_pos = pos;
@@ -651,16 +636,18 @@
if (unlikely(ret <= 0))
goto out_release;
-@@ -1282,7 +1284,7 @@ static int direct_splice_actor(struct pi
+@@ -1270,8 +1272,8 @@ static int direct_splice_actor(struct pipe_inode_info *pipe,
{
struct file *file = sd->u.file;
- return do_splice_from(pipe, file, &file->f_pos, sd->total_len,
+- sd->flags);
+ return vfs_splice_from(pipe, file, &file->f_pos, sd->total_len,
- sd->flags);
++ sd->flags);
}
-@@ -1380,7 +1382,7 @@ static long do_splice(struct file *in, l
+ /**
+@@ -1368,7 +1370,7 @@ static long do_splice(struct file *in, loff_t __user *off_in,
} else
off = &out->f_pos;
@@ -669,7 +656,7 @@
if (off_out && copy_to_user(off_out, off, sizeof(loff_t)))
ret = -EFAULT;
-@@ -1400,7 +1402,7 @@ static long do_splice(struct file *in, l
+@@ -1388,7 +1390,7 @@ static long do_splice(struct file *in, loff_t __user *off_in,
} else
off = &in->f_pos;
@@ -678,9 +665,10 @@
if (off_in && copy_to_user(off_in, off, sizeof(loff_t)))
ret = -EFAULT;
-diff -Nurp linux-2.6.35-rc6-git//fs/stack.c linux-2.6.35-rc6-git-unionfs//fs/stack.c
---- linux-2.6.35-rc6-git//fs/stack.c 2010-05-17 00:17:36.000000000 +0300
-+++ linux-2.6.35-rc6-git-unionfs//fs/stack.c 2010-07-30 15:50:42.996947572 +0300
+diff --git a/fs/stack.c b/fs/stack.c
+index 4a6f7f4..7eeef12 100644
+--- a/fs/stack.c
++++ b/fs/stack.c
@@ -1,8 +1,20 @@
+/*
+ * Copyright (c) 2006-2009 Erez Zadok
@@ -703,9 +691,64 @@
*
* This function cannot be inlined since i_size_{read,write} is rather
* heavy-weight on 32-bit systems
-diff -Nurp linux-2.6.35-rc6-git//fs/unionfs/commonfops.c linux-2.6.35-rc6-git-unionfs//fs/unionfs/commonfops.c
---- linux-2.6.35-rc6-git//fs/unionfs/commonfops.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//fs/unionfs/commonfops.c 2010-07-30 15:50:50.557108046 +0300
+diff --git a/fs/unionfs/Kconfig b/fs/unionfs/Kconfig
+new file mode 100644
+index 0000000..f3c1ac4
+--- /dev/null
++++ b/fs/unionfs/Kconfig
+@@ -0,0 +1,24 @@
++config UNION_FS
++ tristate "Union file system (EXPERIMENTAL)"
++ depends on EXPERIMENTAL
++ help
++ Unionfs is a stackable unification file system, which appears to
++ merge the contents of several directories (branches), while keeping
++ their physical content separate.
++
++ See <http://unionfs.filesystems.org> for details
++
++config UNION_FS_XATTR
++ bool "Unionfs extended attributes"
++ depends on UNION_FS
++ help
++ Extended attributes are name:value pairs associated with inodes by
++ the kernel or by users (see the attr(5) manual page).
++
++ If unsure, say N.
++
++config UNION_FS_DEBUG
++ bool "Debug Unionfs"
++ depends on UNION_FS
++ help
++ If you say Y here, you can turn on debugging output from Unionfs.
+diff --git a/fs/unionfs/Makefile b/fs/unionfs/Makefile
+new file mode 100644
+index 0000000..08f4fd4
+--- /dev/null
++++ b/fs/unionfs/Makefile
+@@ -0,0 +1,17 @@
++UNIONFS_VERSION="2.5.6 (for 2.6.36-rc5)"
++
++EXTRA_CFLAGS += -DUNIONFS_VERSION=\"$(UNIONFS_VERSION)\"
++
++obj-$(CONFIG_UNION_FS) += unionfs.o
++
++unionfs-y := subr.o dentry.o file.o inode.o main.o super.o \
++ rdstate.o copyup.o dirhelper.o rename.o unlink.o \
++ lookup.o commonfops.o dirfops.o sioq.o mmap.o whiteout.o
++
++unionfs-$(CONFIG_UNION_FS_XATTR) += xattr.o
++
++unionfs-$(CONFIG_UNION_FS_DEBUG) += debug.o
++
++ifeq ($(CONFIG_UNION_FS_DEBUG),y)
++EXTRA_CFLAGS += -DDEBUG
++endif
+diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c
+new file mode 100644
+index 0000000..51ea65e
+--- /dev/null
++++ b/fs/unionfs/commonfops.c
@@ -0,0 +1,896 @@
+/*
+ * Copyright (c) 2003-2010 Erez Zadok
@@ -1448,12 +1491,12 @@
+ goto out;
+ if (lower_file->f_op->unlocked_ioctl) {
+ err = lower_file->f_op->unlocked_ioctl(lower_file, cmd, arg);
++#ifdef CONFIG_COMPAT
+ } else if (lower_file->f_op->ioctl) {
-+ lock_kernel();
-+ err = lower_file->f_op->ioctl(
++ err = lower_file->f_op->compat_ioctl(
+ lower_file->f_path.dentry->d_inode,
+ lower_file, cmd, arg);
-+ unlock_kernel();
++#endif
+ }
+
+out:
@@ -1603,10 +1646,12 @@
+ unionfs_read_unlock(dentry->d_sb);
+ return err;
+}
-diff -Nurp linux-2.6.35-rc6-git//fs/unionfs/copyup.c linux-2.6.35-rc6-git-unionfs//fs/unionfs/copyup.c
---- linux-2.6.35-rc6-git//fs/unionfs/copyup.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//fs/unionfs/copyup.c 2010-07-30 15:50:50.558010270 +0300
-@@ -0,0 +1,897 @@
+diff --git a/fs/unionfs/copyup.c b/fs/unionfs/copyup.c
+new file mode 100644
+index 0000000..bba3a75
+--- /dev/null
++++ b/fs/unionfs/copyup.c
+@@ -0,0 +1,896 @@
+/*
+ * Copyright (c) 2003-2010 Erez Zadok
+ * Copyright (c) 2003-2006 Charles P. Wright
@@ -1935,8 +1980,7 @@
+ kfree(buf);
+
+ if (!err)
-+ err = output_file->f_op->fsync(output_file,
-+ new_lower_dentry, 0);
++ err = output_file->f_op->fsync(output_file, 0);
+
+ if (err)
+ goto out_close_out;
@@ -2504,10 +2548,12 @@
+ dbend(dentry) = bstart;
+ ibend(dentry->d_inode) = ibstart(dentry->d_inode) = bstart;
+}
-diff -Nurp linux-2.6.35-rc6-git//fs/unionfs/debug.c linux-2.6.35-rc6-git-unionfs//fs/unionfs/debug.c
---- linux-2.6.35-rc6-git//fs/unionfs/debug.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//fs/unionfs/debug.c 2010-07-30 15:50:50.558010270 +0300
-@@ -0,0 +1,533 @@
+diff --git a/fs/unionfs/debug.c b/fs/unionfs/debug.c
+new file mode 100644
+index 0000000..100d2c6
+--- /dev/null
++++ b/fs/unionfs/debug.c
+@@ -0,0 +1,532 @@
+/*
+ * Copyright (c) 2003-2010 Erez Zadok
+ * Copyright (c) 2005-2007 Josef 'Jeff' Sipek
@@ -2948,7 +2994,6 @@
+ PRINT_CALLER(fname, fxn, line);
+ pr_debug(" CND1: lower_file of type %s\n",
+ file->f_path.dentry->d_sb->s_type->name);
-+ BUG();
+ }
+ }
+}
@@ -3041,9 +3086,11 @@
+ file, fxn, line);
+ }
+}
-diff -Nurp linux-2.6.35-rc6-git//fs/unionfs/dentry.c linux-2.6.35-rc6-git-unionfs//fs/unionfs/dentry.c
---- linux-2.6.35-rc6-git//fs/unionfs/dentry.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//fs/unionfs/dentry.c 2010-07-30 15:50:50.558010270 +0300
+diff --git a/fs/unionfs/dentry.c b/fs/unionfs/dentry.c
+new file mode 100644
+index 0000000..a0c3bba
+--- /dev/null
++++ b/fs/unionfs/dentry.c
@@ -0,0 +1,397 @@
+/*
+ * Copyright (c) 2003-2010 Erez Zadok
@@ -3442,9 +3489,11 @@
+ .d_release = unionfs_d_release,
+ .d_iput = unionfs_d_iput,
+};
-diff -Nurp linux-2.6.35-rc6-git//fs/unionfs/dirfops.c linux-2.6.35-rc6-git-unionfs//fs/unionfs/dirfops.c
---- linux-2.6.35-rc6-git//fs/unionfs/dirfops.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//fs/unionfs/dirfops.c 2010-07-30 15:50:50.559010056 +0300
+diff --git a/fs/unionfs/dirfops.c b/fs/unionfs/dirfops.c
+new file mode 100644
+index 0000000..7da0ff0
+--- /dev/null
++++ b/fs/unionfs/dirfops.c
@@ -0,0 +1,302 @@
+/*
+ * Copyright (c) 2003-2010 Erez Zadok
@@ -3748,9 +3797,11 @@
+ .fsync = unionfs_fsync,
+ .fasync = unionfs_fasync,
+};
-diff -Nurp linux-2.6.35-rc6-git//fs/unionfs/dirhelper.c linux-2.6.35-rc6-git-unionfs//fs/unionfs/dirhelper.c
---- linux-2.6.35-rc6-git//fs/unionfs/dirhelper.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//fs/unionfs/dirhelper.c 2010-07-30 15:50:50.559010056 +0300
+diff --git a/fs/unionfs/dirhelper.c b/fs/unionfs/dirhelper.c
+new file mode 100644
+index 0000000..033343b
+--- /dev/null
++++ b/fs/unionfs/dirhelper.c
@@ -0,0 +1,158 @@
+/*
+ * Copyright (c) 2003-2010 Erez Zadok
@@ -3910,9 +3961,11 @@
+
+ return err;
+}
-diff -Nurp linux-2.6.35-rc6-git//fs/unionfs/fanout.h linux-2.6.35-rc6-git-unionfs//fs/unionfs/fanout.h
---- linux-2.6.35-rc6-git//fs/unionfs/fanout.h 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//fs/unionfs/fanout.h 2010-07-30 15:50:50.559010056 +0300
+diff --git a/fs/unionfs/fanout.h b/fs/unionfs/fanout.h
+new file mode 100644
+index 0000000..5b77eac
+--- /dev/null
++++ b/fs/unionfs/fanout.h
@@ -0,0 +1,407 @@
+/*
+ * Copyright (c) 2003-2010 Erez Zadok
@@ -4321,10 +4374,12 @@
+}
+
+#endif /* not _FANOUT_H */
-diff -Nurp linux-2.6.35-rc6-git//fs/unionfs/file.c linux-2.6.35-rc6-git-unionfs//fs/unionfs/file.c
---- linux-2.6.35-rc6-git//fs/unionfs/file.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//fs/unionfs/file.c 2010-07-30 15:50:50.559010056 +0300
-@@ -0,0 +1,380 @@
+diff --git a/fs/unionfs/file.c b/fs/unionfs/file.c
+new file mode 100644
+index 0000000..1c694c3
+--- /dev/null
++++ b/fs/unionfs/file.c
+@@ -0,0 +1,382 @@
+/*
+ * Copyright (c) 2003-2010 Erez Zadok
+ * Copyright (c) 2003-2006 Charles P. Wright
@@ -4515,10 +4570,11 @@
+ return err;
+}
+
-+int unionfs_fsync(struct file *file, struct dentry *dentry, int datasync)
++int unionfs_fsync(struct file *file, int datasync)
+{
+ int bindex, bstart, bend;
+ struct file *lower_file;
++ struct dentry *dentry = file->f_path.dentry;
+ struct dentry *lower_dentry;
+ struct dentry *parent;
+ struct inode *lower_inode, *inode;
@@ -4551,9 +4607,7 @@
+ lower_file = unionfs_lower_file_idx(file, bindex);
+ lower_dentry = unionfs_lower_dentry_idx(dentry, bindex);
+ mutex_lock(&lower_inode->i_mutex);
-+ err = lower_inode->i_fop->fsync(lower_file,
-+ lower_dentry,
-+ datasync);
++ err = lower_inode->i_fop->fsync(lower_file, datasync);
+ if (!err && bindex == bstart)
+ fsstack_copy_attr_times(inode, lower_inode);
+ mutex_unlock(&lower_inode->i_mutex);
@@ -4696,6 +4750,9 @@
+ .write = unionfs_write,
+ .readdir = unionfs_file_readdir,
+ .unlocked_ioctl = unionfs_ioctl,
++#ifdef CONFIG_COMPAT
++ .compat_ioctl = unionfs_ioctl,
++#endif
+ .mmap = unionfs_mmap,
+ .open = unionfs_open,
+ .flush = unionfs_flush,
@@ -4705,10 +4762,12 @@
+ .splice_read = unionfs_splice_read,
+ .splice_write = unionfs_splice_write,
+};
-diff -Nurp linux-2.6.35-rc6-git//fs/unionfs/inode.c linux-2.6.35-rc6-git-unionfs//fs/unionfs/inode.c
---- linux-2.6.35-rc6-git//fs/unionfs/inode.c 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//fs/unionfs/inode.c 2010-07-30 15:50:50.560010144 +0300
-@@ -0,0 +1,1055 @@
+diff --git a/fs/unionfs/inode.c b/fs/unionfs/inode.c
+new file mode 100644
+index 0000000..4c36f16
+--- /dev/null
++++ b/fs/unionfs/inode.c
+@@ -0,0 +1,1061 @@
+/*
+ * Copyright (c) 2003-2010 Erez Zadok
+ * Copyright (c) 2003-2006 Charles P. Wright
@@ -5427,6 +5486,7 @@
+ void *cookie)
+{
+ struct dentry *parent;
++ char *buf;
+
+ unionfs_read_lock(dentry->d_sb, UNIONFS_SMUTEX_CHILD);
+ parent = unionfs_lock_parent(dentry, UNIONFS_DMUTEX_PARENT);
@@ -5437,8 +5497,13 @@
+ "unionfs: put_link failed to revalidate dentry\n");
+
+ unionfs_check_dentry(dentry);
++#if 0
++ /* XXX: can't run this check b/c this fxn can receive a poisoned 'nd' PTR */
+ unionfs_check_nd(nd);
-+ kfree(nd_get_link(nd));
++#endif
++ buf = nd_get_link(nd);
++ if (!IS_ERR(buf))
++ kfree(buf);
+ unionfs_unlock_dentry(dentry);
+ unionfs_unlock_parent(dentry, parent);
+ unionfs_read_unlock(dentry->d_sb);
@@ -5764,37 +5829,11 @@
+ .listxattr = unionfs_listxattr,
+#endif /* CONFIG_UNION_FS_XATTR */
+};
-diff -Nurp linux-2.6.35-rc6-git//fs/unionfs/Kconfig linux-2.6.35-rc6-git-unionfs//fs/unionfs/Kconfig
---- linux-2.6.35-rc6-git//fs/unionfs/Kconfig 1970-01-01 02:00:00.000000000 +0200
-+++ linux-2.6.35-rc6-git-unionfs//fs/unionfs/Kconfig 2010-07-30 15:50:50.557108046 +0300
-@@ -0,0 +1,24 @@
-+config UNION_FS
-+ tristate "Union file system (EXPERIMENTAL)"
-+ depends on EXPERIMENTAL
-+ help
-+ Unionfs is a stackable unification file system, which appears to
-+ merge the contents of several directories (branches), while keeping
-+ their physical content separate.
-+
-+ See <http://unionfs.filesystems.org> for details
-+
-+config UNION_FS_XATTR
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel-desktop/kernel-desktop-unionfs.patch?r1=1.2.2.8&r2=1.2.2.9&f=u
More information about the pld-cvs-commit
mailing list