Author: shadzik                      Date: Tue Mar 16 13:34:50 2010 GMT
Module: packages                      Tag: Titanium
---- Log message:
- up for 2.6.33

---- Files affected:
packages/kernel-desktop:
   kernel-desktop-unionfs.patch (1.2.2.4 -> 1.2.2.5) 

---- Diffs:

================================================================
Index: packages/kernel-desktop/kernel-desktop-unionfs.patch
diff -u packages/kernel-desktop/kernel-desktop-unionfs.patch:1.2.2.4 
packages/kernel-desktop/kernel-desktop-unionfs.patch:1.2.2.5
--- packages/kernel-desktop/kernel-desktop-unionfs.patch:1.2.2.4        Fri Sep 
11 03:05:02 2009
+++ packages/kernel-desktop/kernel-desktop-unionfs.patch        Tue Mar 16 
14:34:45 2010
@@ -1,8 +1,8 @@
 diff --git a/Documentation/filesystems/00-INDEX 
b/Documentation/filesystems/00-INDEX
-index 8dd6db7..f2f5a6a 100644
+index 875d496..0a9acac 100644
 --- a/Documentation/filesystems/00-INDEX
 +++ b/Documentation/filesystems/00-INDEX
-@@ -108,6 +108,8 @@ udf.txt
+@@ -106,6 +106,8 @@ udf.txt
        - info and mount options for the UDF filesystem.
  ufs.txt
        - info on the ufs filesystem.
@@ -532,10 +532,10 @@
 +
 +For more information, see <http://unionfs.filesystems.org/>.
 diff --git a/MAINTAINERS b/MAINTAINERS
-index cf4abdd..4841326 100644
+index 2533fc4..23bc981 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -5723,6 +5723,14 @@ F:      Documentation/cdrom/
+@@ -5446,6 +5446,14 @@ F:      Documentation/cdrom/
  F:    drivers/cdrom/cdrom.c
  F:    include/linux/cdrom.h
  
@@ -548,13 +548,13 @@
 +S:    Maintained
 +
  UNSORTED BLOCK IMAGES (UBI)
- P:    Artem Bityutskiy
- M:    [email protected]
+ M:    Artem Bityutskiy <[email protected]>
+ W:    http://www.linux-mtd.infradead.org/
 diff --git a/fs/Kconfig b/fs/Kconfig
-index 9f7270f..46ef91e 100644
+index 64d44ef..b69e2f2 100644
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
-@@ -157,6 +157,7 @@ if MISC_FILESYSTEMS
+@@ -169,6 +169,7 @@ if MISC_FILESYSTEMS
  source "fs/adfs/Kconfig"
  source "fs/affs/Kconfig"
  source "fs/ecryptfs/Kconfig"
@@ -574,62 +574,11 @@
  obj-$(CONFIG_VXFS_FS)         += freevxfs/
  obj-$(CONFIG_NFS_FS)          += nfs/
  obj-$(CONFIG_EXPORTFS)                += exportfs/
-diff --git a/fs/ecryptfs/dentry.c b/fs/ecryptfs/dentry.c
-index 2dda5ad..8f006a0 100644
---- a/fs/ecryptfs/dentry.c
-+++ b/fs/ecryptfs/dentry.c
-@@ -62,7 +62,7 @@ static int ecryptfs_d_revalidate(struct dentry *dentry, 
struct nameidata *nd)
-               struct inode *lower_inode =
-                       ecryptfs_inode_to_lower(dentry->d_inode);
- 
--              fsstack_copy_attr_all(dentry->d_inode, lower_inode, NULL);
-+              fsstack_copy_attr_all(dentry->d_inode, lower_inode);
-       }
- out:
-       return rc;
-diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
-index 2f0945d..e884c3b 100644
---- a/fs/ecryptfs/inode.c
-+++ b/fs/ecryptfs/inode.c
-@@ -624,9 +624,9 @@ ecryptfs_rename(struct inode *old_dir, struct dentry 
*old_dentry,
-                       lower_new_dir_dentry->d_inode, lower_new_dentry);
-       if (rc)
-               goto out_lock;
--      fsstack_copy_attr_all(new_dir, lower_new_dir_dentry->d_inode, NULL);
-+      fsstack_copy_attr_all(new_dir, lower_new_dir_dentry->d_inode);
-       if (new_dir != old_dir)
--              fsstack_copy_attr_all(old_dir, lower_old_dir_dentry->d_inode, 
NULL);
-+              fsstack_copy_attr_all(old_dir, lower_old_dir_dentry->d_inode);
- out_lock:
-       unlock_rename(lower_old_dir_dentry, lower_new_dir_dentry);
-       dput(lower_new_dentry->d_parent);
-@@ -965,7 +965,7 @@ static int ecryptfs_setattr(struct dentry *dentry, struct 
iattr *ia)
-       rc = notify_change(lower_dentry, ia);
-       mutex_unlock(&lower_dentry->d_inode->i_mutex);
- out:
--      fsstack_copy_attr_all(inode, lower_inode, NULL);
-+      fsstack_copy_attr_all(inode, lower_inode);
-       return rc;
- }
- 
-diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
-index 9f0aa98..3d94155 100644
---- a/fs/ecryptfs/main.c
-+++ b/fs/ecryptfs/main.c
-@@ -190,7 +190,7 @@ int ecryptfs_interpose(struct dentry *lower_dentry, struct 
dentry *dentry,
-               init_special_inode(inode, lower_inode->i_mode,
-                                  lower_inode->i_rdev);
-       dentry->d_op = &ecryptfs_dops;
--      fsstack_copy_attr_all(inode, lower_inode, NULL);
-+      fsstack_copy_attr_all(inode, lower_inode);
-       /* This size will be overwritten for real files w/ headers and
-        * other metadata */
-       fsstack_copy_inode_size(inode, lower_inode);
 diff --git a/fs/namei.c b/fs/namei.c
-index 967c3db..fd48bb0 100644
+index a4855af..948c5e5 100644
 --- a/fs/namei.c
 +++ b/fs/namei.c
-@@ -375,6 +375,7 @@ void release_open_intent(struct nameidata *nd)
+@@ -387,6 +387,7 @@ void release_open_intent(struct nameidata *nd)
        else
                fput(nd->intent.open.file);
  }
@@ -637,11 +586,88 @@
  
  static inline struct dentry *
  do_revalidate(struct dentry *dentry, struct nameidata *nd)
+diff --git a/fs/splice.c b/fs/splice.c
+index 3920866..488e3ba 100644
+--- a/fs/splice.c
++++ b/fs/splice.c
+@@ -1053,8 +1053,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
+ /*
+  * Attempt to initiate a splice from pipe to file.
+  */
+-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+-                         loff_t *ppos, size_t len, unsigned int flags)
++long vfs_splice_from(struct pipe_inode_info *pipe, struct file *out,
++                   loff_t *ppos, size_t len, unsigned int flags)
+ {
+       ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
+                               loff_t *, size_t, unsigned int);
+@@ -1077,13 +1077,14 @@ static long do_splice_from(struct pipe_inode_info 
*pipe, struct file *out,
+ 
+       return splice_write(pipe, out, ppos, len, flags);
+ }
++EXPORT_SYMBOL_GPL(vfs_splice_from);
+ 
+ /*
+  * Attempt to initiate a splice from a file to a pipe.
+  */
+-static long do_splice_to(struct file *in, loff_t *ppos,
+-                       struct pipe_inode_info *pipe, size_t len,
+-                       unsigned int flags)
++long vfs_splice_to(struct file *in, loff_t *ppos,
++                 struct pipe_inode_info *pipe, size_t len,
++                 unsigned int flags)
+ {
+       ssize_t (*splice_read)(struct file *, loff_t *,
+                              struct pipe_inode_info *, size_t, unsigned int);
+@@ -1103,6 +1104,7 @@ static long do_splice_to(struct file *in, loff_t *ppos,
+ 
+       return splice_read(in, ppos, pipe, len, flags);
+ }
++EXPORT_SYMBOL_GPL(vfs_splice_to);
+ 
+ /**
+  * splice_direct_to_actor - splices data directly between two non-pipes
+@@ -1172,7 +1174,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;
+ 
+-              ret = do_splice_to(in, &pos, pipe, len, flags);
++              ret = vfs_splice_to(in, &pos, pipe, len, flags);
+               if (unlikely(ret <= 0))
+                       goto out_release;
+ 
+@@ -1231,7 +1233,7 @@ static int direct_splice_actor(struct pipe_inode_info 
*pipe,
+ {
+       struct file *file = sd->u.file;
+ 
+-      return do_splice_from(pipe, file, &sd->pos, sd->total_len, sd->flags);
++      return vfs_splice_from(pipe, file, &sd->pos, sd->total_len, sd->flags);
+ }
+ 
+ /**
+@@ -1329,7 +1331,7 @@ static long do_splice(struct file *in, loff_t __user 
*off_in,
+               } else
+                       off = &out->f_pos;
+ 
+-              ret = do_splice_from(ipipe, out, off, len, flags);
++              ret = vfs_splice_from(ipipe, out, off, len, flags);
+ 
+               if (off_out && copy_to_user(off_out, off, sizeof(loff_t)))
+                       ret = -EFAULT;
+@@ -1350,7 +1352,7 @@ static long do_splice(struct file *in, loff_t __user 
*off_in,
+               } else
+                       off = &in->f_pos;
+ 
+-              ret = do_splice_to(in, off, opipe, len, flags);
++              ret = vfs_splice_to(in, off, opipe, len, flags);
+ 
+               if (off_in && copy_to_user(off_in, off, sizeof(loff_t)))
+                       ret = -EFAULT;
 diff --git a/fs/stack.c b/fs/stack.c
-index 67716f6..cc1443d 100644
+index 4a6f7f4..7eeef12 100644
 --- a/fs/stack.c
 +++ b/fs/stack.c
-@@ -1,24 +1,82 @@
+@@ -1,8 +1,20 @@
 +/*
 + * Copyright (c) 2006-2009 Erez Zadok
 + * Copyright (c) 2006-2007 Josef 'Jeff' Sipek
@@ -663,90 +689,18 @@
   *
   * This function cannot be inlined since i_size_{read,write} is rather
   * heavy-weight on 32-bit systems
-  */
--void fsstack_copy_inode_size(struct inode *dst, const struct inode *src)
-+void fsstack_copy_inode_size(struct inode *dst, struct inode *src)
- {
--      i_size_write(dst, i_size_read((struct inode *)src));
--      dst->i_blocks = src->i_blocks;
-+      loff_t i_size;
-+      blkcnt_t i_blocks;
-+
-+      /*
-+       * i_size_read() includes its own seqlocking and protection from
-+       * preemption (see include/linux/fs.h): we need nothing extra for
-+       * that here, and prefer to avoid nesting locks than attempt to
-+       * keep i_size and i_blocks in synch together.
-+       */
-+      i_size = i_size_read(src);
-+
-+      /*
-+       * But if CONFIG_LSF (on 32-bit), we ought to make an effort to keep
-+       * the two halves of i_blocks in synch despite SMP or PREEMPT - though
-+       * stat's generic_fillattr() doesn't bother, and we won't be applying
-+       * quotas (where i_blocks does become important) at the upper level.
-+       *
-+       * We don't actually know what locking is used at the lower level; but
-+       * if it's a filesystem that supports quotas, it will be using i_lock
-+       * as in inode_add_bytes().  tmpfs uses other locking, and its 32-bit
-+       * is (just) able to exceed 2TB i_size with the aid of holes; but its
-+       * i_blocks cannot carry into the upper long without almost 2TB swap -
-+       * let's ignore that case.
-+       */
-+      if (sizeof(i_blocks) > sizeof(long))
-+              spin_lock(&src->i_lock);
-+      i_blocks = src->i_blocks;
-+      if (sizeof(i_blocks) > sizeof(long))
-+              spin_unlock(&src->i_lock);
-+
-+      /*
-+       * If CONFIG_SMP on 32-bit, it's vital for fsstack_copy_inode_size()
-+       * to hold some lock around i_size_write(), otherwise i_size_read()
-+       * may spin forever (see include/linux/fs.h).  We don't necessarily
-+       * hold i_mutex when this is called, so take i_lock for that case.
-+       *
-+       * And if CONFIG_LSF (on 32-bit), continue our effort to keep the
-+       * two halves of i_blocks in synch despite SMP or PREEMPT: use i_lock
-+       * for that case too, and do both at once by combining the tests.
-+       *
-+       * There is none of this locking overhead in the 64-bit case.
-+       */
-+      if (sizeof(i_size) > sizeof(long) || sizeof(i_blocks) > sizeof(long))
-+              spin_lock(&dst->i_lock);
-+      i_size_write(dst, i_size);
-+      dst->i_blocks = i_blocks;
-+      if (sizeof(i_size) > sizeof(long) || sizeof(i_blocks) > sizeof(long))
-+              spin_unlock(&dst->i_lock);
- }
- EXPORT_SYMBOL_GPL(fsstack_copy_inode_size);
- 
--/* copy all attributes; get_nlinks is optional way to override the i_nlink
-+/*
-+ * copy all attributes; get_nlinks is optional way to override the i_nlink
-  * copying
-  */
--void fsstack_copy_attr_all(struct inode *dest, const struct inode *src,
--                              int (*get_nlinks)(struct inode *))
-+void fsstack_copy_attr_all(struct inode *dest, const struct inode *src)
- {
-       dest->i_mode = src->i_mode;
-       dest->i_uid = src->i_uid;
-@@ -29,14 +87,6 @@ void fsstack_copy_attr_all(struct inode *dest, const struct 
inode *src,
-       dest->i_ctime = src->i_ctime;
-       dest->i_blkbits = src->i_blkbits;
-       dest->i_flags = src->i_flags;
--
--      /*
--       * Update the nlinks AFTER updating the above fields, because the
--       * get_links callback may depend on them.
--       */
--      if (!get_nlinks)
--              dest->i_nlink = src->i_nlink;
--      else
--              dest->i_nlink = (*get_nlinks)(dest);
-+      dest->i_nlink = src->i_nlink;
- }
- EXPORT_SYMBOL_GPL(fsstack_copy_attr_all);
+diff --git a/fs/super.c b/fs/super.c
+index aff046b..ad6dc74 100644
+--- a/fs/super.c
++++ b/fs/super.c
+@@ -95,6 +95,7 @@ static struct super_block *alloc_super(struct 
file_system_type *type)
+               s->s_count = S_BIAS;
+               atomic_set(&s->s_active, 1);
+               mutex_init(&s->s_vfs_rename_mutex);
++              lockdep_set_class(&s->s_vfs_rename_mutex, 
&type->s_vfs_rename_key);
+               mutex_init(&s->s_dquot.dqio_mutex);
+               mutex_init(&s->s_dquot.dqonoff_mutex);
+               init_rwsem(&s->s_dquot.dqptr_sem);
 diff --git a/fs/unionfs/Kconfig b/fs/unionfs/Kconfig
 new file mode 100644
 index 0000000..f3c1ac4
@@ -779,11 +733,11 @@
 +        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..56c6790
+index 0000000..1ef873e
 --- /dev/null
 +++ b/fs/unionfs/Makefile
 @@ -0,0 +1,17 @@
-+UNIONFS_VERSION="2.5.2 (for 2.6.30)"
++UNIONFS_VERSION="2.5.4 (for 2.6.33)"
 +
 +EXTRA_CFLAGS += -DUNIONFS_VERSION=\"$(UNIONFS_VERSION)\"
 +
@@ -802,12 +756,12 @@
 +endif
 diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c
 new file mode 100644
-index 0000000..587f984
+index 0000000..740c4ad
 --- /dev/null
 +++ b/fs/unionfs/commonfops.c
 @@ -0,0 +1,896 @@
 +/*
-+ * Copyright (c) 2003-2009 Erez Zadok
++ * Copyright (c) 2003-2010 Erez Zadok
 + * Copyright (c) 2003-2006 Charles P. Wright
 + * Copyright (c) 2005-2007 Josef 'Jeff' Sipek
 + * Copyright (c) 2005-2006 Junjiro Okajima
@@ -816,8 +770,8 @@
 + * Copyright (c) 2003-2004 Mohammad Nayyer Zubair
 + * Copyright (c) 2003      Puja Gupta
 + * Copyright (c) 2003      Harikesavan Krishnan
-+ * Copyright (c) 2003-2009 Stony Brook University
-+ * Copyright (c) 2003-2009 The Research Foundation of SUNY
++ * Copyright (c) 2003-2010 Stony Brook University
++ * Copyright (c) 2003-2010 The Research Foundation of SUNY
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
@@ -1704,12 +1658,12 @@
 +}
 diff --git a/fs/unionfs/copyup.c b/fs/unionfs/copyup.c
 new file mode 100644
-index 0000000..c43cc7f
+index 0000000..9c7b2ac
 --- /dev/null
 +++ b/fs/unionfs/copyup.c
 @@ -0,0 +1,897 @@
 +/*
-+ * Copyright (c) 2003-2009 Erez Zadok
++ * Copyright (c) 2003-2010 Erez Zadok
 + * Copyright (c) 2003-2006 Charles P. Wright
 + * Copyright (c) 2005-2007 Josef 'Jeff' Sipek
 + * Copyright (c) 2005-2006 Junjiro Okajima
@@ -1718,8 +1672,8 @@
 + * Copyright (c) 2003-2004 Mohammad Nayyer Zubair
 + * Copyright (c) 2003      Puja Gupta
 + * Copyright (c) 2003      Harikesavan Krishnan
-+ * Copyright (c) 2003-2009 Stony Brook University
-+ * Copyright (c) 2003-2009 The Research Foundation of SUNY
++ * Copyright (c) 2003-2010 Stony Brook University
++ * Copyright (c) 2003-2010 The Research Foundation of SUNY
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
@@ -2607,15 +2561,15 @@
 +}
 diff --git a/fs/unionfs/debug.c b/fs/unionfs/debug.c
 new file mode 100644
-index 0000000..3fd641a
+index 0000000..acc44bd
 --- /dev/null
 +++ b/fs/unionfs/debug.c
 @@ -0,0 +1,533 @@
 +/*
-+ * Copyright (c) 2003-2009 Erez Zadok
++ * Copyright (c) 2003-2010 Erez Zadok
 + * Copyright (c) 2005-2007 Josef 'Jeff' Sipek
-+ * Copyright (c) 2003-2009 Stony Brook University
-+ * Copyright (c) 2003-2009 The Research Foundation of SUNY
++ * Copyright (c) 2003-2010 Stony Brook University
++ * Copyright (c) 2003-2010 The Research Foundation of SUNY
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
@@ -3146,12 +3100,12 @@
 +}
 diff --git a/fs/unionfs/dentry.c b/fs/unionfs/dentry.c
 new file mode 100644
-index 0000000..85b5d3c
+index 0000000..a0c3bba
 --- /dev/null
 +++ b/fs/unionfs/dentry.c
 @@ -0,0 +1,397 @@
 +/*
-+ * Copyright (c) 2003-2009 Erez Zadok
++ * Copyright (c) 2003-2010 Erez Zadok
 + * Copyright (c) 2003-2006 Charles P. Wright
 + * Copyright (c) 2005-2007 Josef 'Jeff' Sipek
 + * Copyright (c) 2005-2006 Junjiro Okajima
@@ -3160,8 +3114,8 @@
 + * Copyright (c) 2003-2004 Mohammad Nayyer Zubair
 + * Copyright (c) 2003      Puja Gupta
 + * Copyright (c) 2003      Harikesavan Krishnan
-+ * Copyright (c) 2003-2009 Stony Brook University
-+ * Copyright (c) 2003-2009 The Research Foundation of SUNY
++ * Copyright (c) 2003-2010 Stony Brook University
++ * Copyright (c) 2003-2010 The Research Foundation of SUNY
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
@@ -3549,12 +3503,12 @@
 +};
 diff --git a/fs/unionfs/dirfops.c b/fs/unionfs/dirfops.c
 new file mode 100644
-index 0000000..eccb9ae
+index 0000000..7da0ff0
 --- /dev/null
 +++ b/fs/unionfs/dirfops.c
 @@ -0,0 +1,302 @@
 +/*
-+ * Copyright (c) 2003-2009 Erez Zadok
++ * Copyright (c) 2003-2010 Erez Zadok
 + * Copyright (c) 2003-2006 Charles P. Wright
 + * Copyright (c) 2005-2007 Josef 'Jeff' Sipek
 + * Copyright (c) 2005-2006 Junjiro Okajima
@@ -3563,8 +3517,8 @@
 + * Copyright (c) 2003-2004 Mohammad Nayyer Zubair
 + * Copyright (c) 2003      Puja Gupta
 + * Copyright (c) 2003      Harikesavan Krishnan
-+ * Copyright (c) 2003-2009 Stony Brook University
-+ * Copyright (c) 2003-2009 The Research Foundation of SUNY
++ * Copyright (c) 2003-2010 Stony Brook University
++ * Copyright (c) 2003-2010 The Research Foundation of SUNY
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
@@ -3857,12 +3811,12 @@
 +};
 diff --git a/fs/unionfs/dirhelper.c b/fs/unionfs/dirhelper.c
 new file mode 100644
-index 0000000..2ecaafa
+index 0000000..033343b
 --- /dev/null
 +++ b/fs/unionfs/dirhelper.c
 @@ -0,0 +1,158 @@
 +/*
-+ * Copyright (c) 2003-2009 Erez Zadok
++ * Copyright (c) 2003-2010 Erez Zadok
 + * Copyright (c) 2003-2006 Charles P. Wright
 + * Copyright (c) 2005-2007 Josef 'Jeff' Sipek
 + * Copyright (c) 2005-2006 Junjiro Okajima
@@ -3871,8 +3825,8 @@
 + * Copyright (c) 2003-2004 Mohammad Nayyer Zubair
 + * Copyright (c) 2003      Puja Gupta
 + * Copyright (c) 2003      Harikesavan Krishnan
-+ * Copyright (c) 2003-2009 Stony Brook University
-+ * Copyright (c) 2003-2009 The Research Foundation of SUNY
++ * Copyright (c) 2003-2010 Stony Brook University
++ * Copyright (c) 2003-2010 The Research Foundation of SUNY
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
@@ -4021,12 +3975,12 @@
 +}
 diff --git a/fs/unionfs/fanout.h b/fs/unionfs/fanout.h
 new file mode 100644
-index 0000000..04ffa85
+index 0000000..5b77eac
 --- /dev/null
 +++ b/fs/unionfs/fanout.h
 @@ -0,0 +1,407 @@
 +/*
-+ * Copyright (c) 2003-2009 Erez Zadok
++ * Copyright (c) 2003-2010 Erez Zadok
 + * Copyright (c) 2003-2006 Charles P. Wright
 + * Copyright (c) 2005-2007 Josef 'Jeff' Sipek
 + * Copyright (c) 2005      Arun M. Krishnakumar
@@ -4034,8 +3988,8 @@
 + * Copyright (c) 2003-2004 Mohammad Nayyer Zubair
 + * Copyright (c) 2003      Puja Gupta
 + * Copyright (c) 2003      Harikesavan Krishnan
-+ * Copyright (c) 2003-2009 Stony Brook University
-+ * Copyright (c) 2003-2009 The Research Foundation of SUNY
++ * Copyright (c) 2003-2010 Stony Brook University
++ * Copyright (c) 2003-2010 The Research Foundation of SUNY
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
@@ -4434,12 +4388,12 @@
 +#endif        /* not _FANOUT_H */
 diff --git a/fs/unionfs/file.c b/fs/unionfs/file.c
 new file mode 100644
-index 0000000..281169e
+index 0000000..46eaa90
 --- /dev/null
 +++ b/fs/unionfs/file.c
 @@ -0,0 +1,380 @@
 +/*
-+ * Copyright (c) 2003-2009 Erez Zadok
++ * Copyright (c) 2003-2010 Erez Zadok
 + * Copyright (c) 2003-2006 Charles P. Wright
 + * Copyright (c) 2005-2007 Josef 'Jeff' Sipek
 + * Copyright (c) 2005-2006 Junjiro Okajima
@@ -4448,8 +4402,8 @@
 + * Copyright (c) 2003-2004 Mohammad Nayyer Zubair
 + * Copyright (c) 2003      Puja Gupta
 + * Copyright (c) 2003      Harikesavan Krishnan
-+ * Copyright (c) 2003-2009 Stony Brook University
-+ * Copyright (c) 2003-2009 The Research Foundation of SUNY
++ * Copyright (c) 2003-2010 Stony Brook University
++ * Copyright (c) 2003-2010 The Research Foundation of SUNY
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
@@ -4538,7 +4492,7 @@
 +      struct file *lower_file;
 +      struct dentry *dentry = file->f_path.dentry;
 +      struct dentry *parent;
-+      struct vm_operations_struct *saved_vm_ops = NULL;
++      const struct vm_operations_struct *saved_vm_ops = NULL;
 +
 +      /*
 +       * Since mm/memory.c:might_fault() (under PROVE_LOCKING) was
@@ -4820,12 +4774,12 @@
 +};
 diff --git a/fs/unionfs/inode.c b/fs/unionfs/inode.c
 new file mode 100644
-index 0000000..7c17093
+index 0000000..062163a
 --- /dev/null
 +++ b/fs/unionfs/inode.c
-@@ -0,0 +1,1035 @@
+@@ -0,0 +1,1055 @@
 +/*
-+ * Copyright (c) 2003-2009 Erez Zadok
++ * Copyright (c) 2003-2010 Erez Zadok
 + * Copyright (c) 2003-2006 Charles P. Wright
 + * Copyright (c) 2005-2007 Josef 'Jeff' Sipek
 + * Copyright (c) 2005-2006 Junjiro Okajima
@@ -4834,8 +4788,8 @@
 + * Copyright (c) 2003-2004 Mohammad Nayyer Zubair
 + * Copyright (c) 2003      Puja Gupta
 + * Copyright (c) 2003      Harikesavan Krishnan
-+ * Copyright (c) 2003-2009 Stony Brook University
-+ * Copyright (c) 2003-2009 The Research Foundation of SUNY
++ * Copyright (c) 2003-2010 Stony Brook University
++ * Copyright (c) 2003-2010 The Research Foundation of SUNY
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
@@ -4951,12 +4905,12 @@
 +      lower_parent_dentry = lock_parent(lower_dentry);
 +      if (IS_ERR(lower_parent_dentry)) {
 +              err = PTR_ERR(lower_parent_dentry);
-+              goto out;
++              goto out_unlock;
 +      }
 +
 +      err = init_lower_nd(&lower_nd, LOOKUP_CREATE);
 +      if (unlikely(err < 0))
-+              goto out;
++              goto out_unlock;
 +      err = vfs_create(lower_parent_dentry->d_inode, lower_dentry, mode,
 +                       &lower_nd);
 +      release_lower_nd(&lower_nd, err);
@@ -4972,8 +4926,8 @@
 +              }
 +      }
 +
++out_unlock:
 +      unlock_dir(lower_parent_dentry);
-+
 +out:
 +      if (!err) {
 +              unionfs_postcopyup_setmnt(dentry);
@@ -5216,7 +5170,7 @@
 +      lower_parent_dentry = lock_parent(lower_dentry);
 +      if (IS_ERR(lower_parent_dentry)) {
 +              err = PTR_ERR(lower_parent_dentry);
-+              goto out;
++              goto out_unlock;
 +      }
 +
 +      mode = S_IALLUGO;
@@ -5232,8 +5186,8 @@
 +              }
 +      }
 +
++out_unlock:
<<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.4&r2=1.2.2.5&f=u

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

Reply via email to