%patch Index: 2.6.x-xfs/Documentation/filesystems/xfs.txt =================================================================== --- 2.6.x-xfs.orig/Documentation/filesystems/xfs.txt 2005-12-05 09:55:58.288701257 +1100 +++ 2.6.x-xfs/Documentation/filesystems/xfs.txt 2006-03-14 09:48:19.376326118 +1100 @@ -57,6 +57,10 @@ of zero is used, the value selected by the default algorithm will be displayed in /proc/mounts. + dmapi + Enable the DMAPI (Data Management API) event callouts. + Use with the "mtpt" option. + ikeep/noikeep When inode clusters are emptied of inodes, keep them around on the disk (ikeep) - this is the traditional XFS behaviour @@ -114,6 +118,11 @@ included in the DMAPI mount event, and should be the path of the actual mountpoint that is used. + mtpt=mountpoint + Use with the "dmapi" option. The value specified here will be + included in the DMAPI mount event, and should be the path of + the actual mountpoint that is used. + noalign Data allocations will not be aligned at stripe unit boundaries. Index: 2.6.x-xfs/MAINTAINERS =================================================================== --- 2.6.x-xfs.orig/MAINTAINERS 2006-03-14 09:44:54.435088169 +1100 +++ 2.6.x-xfs/MAINTAINERS 2006-03-14 09:48:19.378278981 +1100 @@ -3061,6 +3061,14 @@ W: http://oss.sgi.com/projects/xfs S: Supported +DMAPI +P: Silicon Graphics Inc +M: xfs-masters@oss.sgi.com +M: bobo@sgi.com +L: linux-xfs@oss.sgi.com +W: http://oss.sgi.com/projects/xfs +S: Supported + X86 3-LEVEL PAGING (PAE) SUPPORT P: Ingo Molnar M: mingo@redhat.com Index: 2.6.x-xfs/fs/Kconfig =================================================================== --- 2.6.x-xfs.orig/fs/Kconfig 2006-02-13 14:38:32.901723320 +1100 +++ 2.6.x-xfs/fs/Kconfig 2006-03-14 09:48:19.380231843 +1100 @@ -405,6 +405,25 @@ If unsure, say Y. +config DMAPI + tristate "DMAPI support" + help + The Data Management API is a system interface used to implement + the interface defined in the X/Open document: + "Systems Management: Data Storage Management (XDSM) API", + dated February 1997. This interface is used by hierarchical + storage management systems. + + If any DMAPI-capable filesystem is built into the kernel, then + DMAPI must also be built into the kernel. + +config DMAPI_DEBUG + bool "DMAPI debugging support" + depends on DMAPI + help + If you don't know whether you need it, then you don't need it: + answer N. + config QUOTA bool "Quota support" help Index: 2.6.x-xfs/fs/Makefile =================================================================== --- 2.6.x-xfs.orig/fs/Makefile 2006-02-06 11:08:00.089274123 +1100 +++ 2.6.x-xfs/fs/Makefile 2006-03-14 09:48:19.381208275 +1100 @@ -40,6 +40,8 @@ obj-$(CONFIG_QFMT_V2) += quota_v2.o obj-$(CONFIG_QUOTACTL) += quota.o +obj-$(CONFIG_DMAPI) += dmapi/ + obj-$(CONFIG_DNOTIFY) += dnotify.o obj-$(CONFIG_PROC_FS) += proc/ Index: 2.6.x-xfs/fs/exec.c =================================================================== --- 2.6.x-xfs.orig/fs/exec.c 2006-03-14 09:44:54.744616945 +1100 +++ 2.6.x-xfs/fs/exec.c 2006-03-14 09:48:19.382184706 +1100 @@ -492,6 +492,13 @@ if (!err) { file = nameidata_to_filp(&nd, O_RDONLY); if (!IS_ERR(file)) { + if (file->f_op && file->f_op->open_exec) { + err = file->f_op->open_exec(inode); + if (err) { + fput(file); + return ERR_PTR(err); + } + } err = deny_write_access(file); if (err) { fput(file); Index: 2.6.x-xfs/include/linux/mm.h =================================================================== --- 2.6.x-xfs.orig/include/linux/mm.h 2006-02-28 10:56:53.198888231 +1100 +++ 2.6.x-xfs/include/linux/mm.h 2006-03-14 09:48:19.384137569 +1100 @@ -200,6 +200,8 @@ void (*close)(struct vm_area_struct * area); struct page * (*nopage)(struct vm_area_struct * area, unsigned long address, int *type); int (*populate)(struct vm_area_struct * area, unsigned long address, unsigned long len, pgprot_t prot, unsigned long pgoff, int nonblock); +#define HAVE_VMOP_MPROTECT + int (*mprotect)(struct vm_area_struct * area, unsigned int newflags); #ifdef CONFIG_NUMA int (*set_policy)(struct vm_area_struct *vma, struct mempolicy *new); struct mempolicy *(*get_policy)(struct vm_area_struct *vma, Index: 2.6.x-xfs/include/linux/fs.h =================================================================== --- 2.6.x-xfs.orig/include/linux/fs.h 2006-03-14 09:44:54.820778600 +1100 +++ 2.6.x-xfs/include/linux/fs.h 2006-03-14 09:48:19.385114000 +1100 @@ -1024,6 +1024,8 @@ int (*check_flags)(int); int (*dir_notify)(struct file *filp, unsigned long arg); int (*flock) (struct file *, int, struct file_lock *); +#define HAVE_FOP_OPEN_EXEC + int (*open_exec) (struct inode *); }; struct inode_operations { Index: 2.6.x-xfs/mm/mprotect.c =================================================================== --- 2.6.x-xfs.orig/mm/mprotect.c 2005-12-05 09:56:23.070435243 +1100 +++ 2.6.x-xfs/mm/mprotect.c 2006-03-14 09:48:19.386090432 +1100 @@ -257,6 +257,11 @@ if (error) goto out; + if (vma->vm_ops && vma->vm_ops->mprotect) { + error = vma->vm_ops->mprotect(vma, newflags); + if (error < 0) + goto out; + } tmp = vma->vm_end; if (tmp > end) tmp = end; Index: 2.6.x-xfs/mm/prio_tree.c =================================================================== --- 2.6.x-xfs.orig/mm/prio_tree.c 2005-03-04 16:59:46.000000000 +1100 +++ 2.6.x-xfs/mm/prio_tree.c 2006-03-14 09:48:19.386090432 +1100 @@ -11,6 +11,7 @@ * 02Feb2004 Initial version */ +#include #include #include @@ -205,3 +206,4 @@ } else return NULL; } +EXPORT_SYMBOL(vma_prio_tree_next); %diffstat Documentation/filesystems/xfs.txt | 9 +++++++++ MAINTAINERS | 8 ++++++++ fs/Kconfig | 19 +++++++++++++++++++ fs/Makefile | 2 ++ fs/exec.c | 7 +++++++ include/linux/fs.h | 2 ++ include/linux/mm.h | 2 ++ mm/mprotect.c | 5 +++++ mm/prio_tree.c | 2 ++ 9 files changed, 56 insertions(+)