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 <[email protected]>
-
- 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:    [email protected]
++L:    [email protected]
++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 <[email protected]>
+ 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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to