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
