Author: arekm                        Date: Wed Mar 23 17:06:40 2011 GMT
Module: packages                      Tag: LINUX_2_6_37
---- Log message:
- update unionfs to 
http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.8_for_2.6.37.2.diff.gz

---- Files affected:
packages/kernel:
   kernel.spec (1.888.2.2 -> 1.888.2.3) , kernel-unionfs.patch (1.11 -> 
1.11.2.1) 

---- Diffs:

================================================================
Index: packages/kernel/kernel.spec
diff -u packages/kernel/kernel.spec:1.888.2.2 
packages/kernel/kernel.spec:1.888.2.3
--- packages/kernel/kernel.spec:1.888.2.2       Wed Mar 23 18:00:28 2011
+++ packages/kernel/kernel.spec Wed Mar 23 18:06:34 2011
@@ -246,7 +246,7 @@
 # from patches.fixes/tiocgdev
 Patch131:      kernel-TIOCGDEV.patch
 
-# 
http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.7_for_2.6.36.diff.gz
+# 
http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.8_for_2.6.37.2.diff.gz
 Patch140:      kernel-unionfs.patch
 
 # http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git, read README
@@ -1538,6 +1538,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.888.2.3  2011/03/23 17:06:34  arekm
+- update unionfs to 
http://download.filesystems.org/unionfs/unionfs-2.x/unionfs-2.5.8_for_2.6.37.2.diff.gz
+
 Revision 1.888.2.2  2011/03/23 17:00:28  arekm
 - up to 
http://www.grsecurity.net/~spender/grsecurity-2.2.1-2.6.37.4-201103211735.patch
 

================================================================
Index: packages/kernel/kernel-unionfs.patch
diff -u packages/kernel/kernel-unionfs.patch:1.11 
packages/kernel/kernel-unionfs.patch:1.11.2.1
--- packages/kernel/kernel-unionfs.patch:1.11   Sun Nov  7 11:19:06 2010
+++ packages/kernel/kernel-unionfs.patch        Wed Mar 23 18:06:34 2011
@@ -1,8 +1,8 @@
 diff --git a/Documentation/filesystems/00-INDEX 
b/Documentation/filesystems/00-INDEX
-index 4303614..5ade4a8 100644
+index 8c624a1..4aa288b 100644
 --- a/Documentation/filesystems/00-INDEX
 +++ b/Documentation/filesystems/00-INDEX
-@@ -112,6 +112,8 @@ udf.txt
+@@ -110,6 +110,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 f2a2b8e..11d7f45 100644
+index 7585e9d..3a2bc77 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -5917,6 +5917,14 @@ F:      Documentation/cdrom/
+@@ -6030,6 +6030,14 @@ F:      Documentation/cdrom/
  F:    drivers/cdrom/cdrom.c
  F:    include/linux/cdrom.h
  
@@ -551,10 +551,10 @@
  M:    Artem Bityutskiy <[email protected]>
  W:    http://www.linux-mtd.infradead.org/
 diff --git a/fs/Kconfig b/fs/Kconfig
-index 3d18530..65b6aa1 100644
+index 771f457..5d4c8c6 100644
 --- a/fs/Kconfig
 +++ b/fs/Kconfig
-@@ -169,6 +169,7 @@ if MISC_FILESYSTEMS
+@@ -171,6 +171,7 @@ if MISC_FILESYSTEMS
  source "fs/adfs/Kconfig"
  source "fs/affs/Kconfig"
  source "fs/ecryptfs/Kconfig"
@@ -563,10 +563,10 @@
  source "fs/hfsplus/Kconfig"
  source "fs/befs/Kconfig"
 diff --git a/fs/Makefile b/fs/Makefile
-index e6ec1d3..787332e 100644
+index a7f7cef..672664b 100644
 --- a/fs/Makefile
 +++ b/fs/Makefile
-@@ -84,6 +84,7 @@ obj-$(CONFIG_ISO9660_FS)     += isofs/
+@@ -81,6 +81,7 @@ obj-$(CONFIG_ISO9660_FS)     += isofs/
  obj-$(CONFIG_HFSPLUS_FS)      += hfsplus/ # Before hfs to find wrapped HFS+
  obj-$(CONFIG_HFS_FS)          += hfs/
  obj-$(CONFIG_ECRYPT_FS)               += ecryptfs/
@@ -575,7 +575,7 @@
  obj-$(CONFIG_NFS_FS)          += nfs/
  obj-$(CONFIG_EXPORTFS)                += exportfs/
 diff --git a/fs/namei.c b/fs/namei.c
-index 24896e8..db22420 100644
+index 4ff7ca5..24f1f62 100644
 --- a/fs/namei.c
 +++ b/fs/namei.c
 @@ -385,6 +385,7 @@ void release_open_intent(struct nameidata *nd)
@@ -587,7 +587,7 @@
  static inline struct dentry *
  do_revalidate(struct dentry *dentry, struct nameidata *nd)
 diff --git a/fs/splice.c b/fs/splice.c
-index 8f1dfae..7a57fab 100644
+index ce2f025..00ae6d9 100644
 --- a/fs/splice.c
 +++ b/fs/splice.c
 @@ -1092,8 +1092,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
@@ -647,7 +647,7 @@
  }
  
  /**
-@@ -1368,7 +1370,7 @@ static long do_splice(struct file *in, loff_t __user 
*off_in,
+@@ -1356,7 +1358,7 @@ static long do_splice(struct file *in, loff_t __user 
*off_in,
                } else
                        off = &out->f_pos;
  
@@ -656,7 +656,7 @@
  
                if (off_out && copy_to_user(off_out, off, sizeof(loff_t)))
                        ret = -EFAULT;
-@@ -1388,7 +1390,7 @@ static long do_splice(struct file *in, loff_t __user 
*off_in,
+@@ -1376,7 +1378,7 @@ static long do_splice(struct file *in, loff_t __user 
*off_in,
                } else
                        off = &in->f_pos;
  
@@ -723,11 +723,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..86c32ba
+index 0000000..2ae32e5
 --- /dev/null
 +++ b/fs/unionfs/Makefile
 @@ -0,0 +1,17 @@
-+UNIONFS_VERSION="2.5.7 (for 2.6.36)"
++UNIONFS_VERSION="2.5.8 (for 2.6.37.2)"
 +
 +EXTRA_CFLAGS += -DUNIONFS_VERSION=\"$(UNIONFS_VERSION)\"
 +
@@ -1492,9 +1492,9 @@
 +      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->compat_ioctl) {
++      } else if (lower_file->f_op->ioctl) {
 +              err = lower_file->f_op->compat_ioctl(
-+
++                      lower_file->f_path.dentry->d_inode,
 +                      lower_file, cmd, arg);
 +#endif
 +      }
@@ -4764,10 +4764,10 @@
 +};
 diff --git a/fs/unionfs/inode.c b/fs/unionfs/inode.c
 new file mode 100644
-index 0000000..4c36f16
+index 0000000..cc994bd
 --- /dev/null
 +++ b/fs/unionfs/inode.c
-@@ -0,0 +1,1061 @@
+@@ -0,0 +1,1074 @@
 +/*
 + * Copyright (c) 2003-2010 Erez Zadok
 + * Copyright (c) 2003-2006 Charles P. Wright
@@ -5671,6 +5671,12 @@
 +      struct inode *lower_inode;
 +      int bstart, bend, bindex;
 +      loff_t size;
++      struct iattr lower_ia;
++
++      /* check if user has permission to change inode */
++      err = inode_change_ok(dentry->d_inode, ia);
++      if (err)
++              goto out_err;
 +
 +      unionfs_read_lock(dentry->d_sb, UNIONFS_SMUTEX_CHILD);
 +      parent = unionfs_lock_parent(dentry, UNIONFS_DMUTEX_PARENT);
@@ -5758,8 +5764,15 @@
 +       * unlinked (no inode->i_sb and i_ino==0.  This happens if someone
 +       * tries to open(), unlink(), then ftruncate() a file.
 +       */
++      /* prepare our own lower struct iattr (with our own lower file) */
++      memcpy(&lower_ia, ia, sizeof(lower_ia));
++      if (ia->ia_valid & ATTR_FILE) {
++              lower_ia.ia_file = unionfs_lower_file(ia->ia_file);
++              BUG_ON(!lower_ia.ia_file); // XXX?
++      }
++
 +      mutex_lock(&lower_dentry->d_inode->i_mutex);
-+      err = notify_change(lower_dentry, ia);
++      err = notify_change(lower_dentry, &lower_ia);
 +      mutex_unlock(&lower_dentry->d_inode->i_mutex);
 +      if (err)
 +              goto out;
@@ -5787,7 +5800,7 @@
 +      unionfs_unlock_dentry(dentry);
 +      unionfs_unlock_parent(dentry, parent);
 +      unionfs_read_unlock(dentry->d_sb);
-+
++out_err:
 +      return err;
 +}
 +
@@ -6406,10 +6419,10 @@
 +}
 diff --git a/fs/unionfs/main.c b/fs/unionfs/main.c
 new file mode 100644
-index 0000000..258386e
+index 0000000..9ee58eb
 --- /dev/null
 +++ b/fs/unionfs/main.c
-@@ -0,0 +1,758 @@
+@@ -0,0 +1,762 @@
 +/*
 + * Copyright (c) 2003-2010 Erez Zadok
 + * Copyright (c) 2003-2006 Charles P. Wright
@@ -6699,7 +6712,7 @@
 +      if (options[0] == '\0') {
 +              printk(KERN_ERR "unionfs: no branches specified\n");
 +              err = -EINVAL;
-+              goto out;
++              goto out_return;
 +      }
 +
 +      /*
@@ -6715,14 +6728,17 @@
 +              kcalloc(branches, sizeof(struct unionfs_data), GFP_KERNEL);
 +      if (unlikely(!UNIONFS_SB(sb)->data)) {
 +              err = -ENOMEM;
-+              goto out;
++              goto out_return;
 +      }
 +
 +      lower_root_info->lower_paths =
 +              kcalloc(branches, sizeof(struct path), GFP_KERNEL);
 +      if (unlikely(!lower_root_info->lower_paths)) {
 +              err = -ENOMEM;
-+              goto out;
++              /* free the underlying pointer array */
++              kfree(UNIONFS_SB(sb)->data);
++              UNIONFS_SB(sb)->data = NULL;
++              goto out_return;
 +      }
 +
 +      /* now parsing a string such as "b1:b2=rw:b3=ro:b4" */
@@ -6839,6 +6855,7 @@
 +              lower_root_info->lower_paths = NULL;
 +              UNIONFS_SB(sb)->data = NULL;
 +      }
++out_return:
 +      return err;
 +}
 +
@@ -11171,7 +11188,7 @@
   */
  
 diff --git a/include/linux/magic.h b/include/linux/magic.h
-index eb9800f..9770154 100644
+index ff690d0..37452a3 100644
 --- a/include/linux/magic.h
 +++ b/include/linux/magic.h
 @@ -47,6 +47,8 @@
@@ -11240,10 +11257,10 @@
 +#endif /* _LINUX_UNIONFS_H */
 +
 diff --git a/security/security.c b/security/security.c
-index c53949f..eb71394 100644
+index 8d57dbb..950a998 100644
 --- a/security/security.c
 +++ b/security/security.c
-@@ -528,6 +528,7 @@ int security_inode_permission(struct inode *inode, int 
mask)
+@@ -511,6 +511,7 @@ int security_inode_permission(struct inode *inode, int 
mask)
                return 0;
        return security_ops->inode_permission(inode, mask);
  }
================================================================

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel.spec?r1=1.888.2.2&r2=1.888.2.3&f=u
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel/kernel-unionfs.patch?r1=1.11&r2=1.11.2.1&f=u

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

Reply via email to