%patch Index: 2.6.10-xfs/Documentation/filesystems/xfs.txt =================================================================== --- 2.6.10-xfs.orig/Documentation/filesystems/xfs.txt 2005-01-05 13:16:12.000000000 +1100 +++ 2.6.10-xfs/Documentation/filesystems/xfs.txt 2005-01-05 15:09:54.000000000 +1100 @@ -29,6 +29,10 @@ The preferred buffered I/O size can also be altered on an individual file basis using the ioctl(2) system call. + 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 @@ -62,6 +66,11 @@ optional, and the log section can be separate from the data section or contained within it. + 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.10-xfs/MAINTAINERS =================================================================== --- 2.6.10-xfs.orig/MAINTAINERS 2005-01-05 14:36:24.000000000 +1100 +++ 2.6.10-xfs/MAINTAINERS 2005-01-05 15:09:54.000000000 +1100 @@ -2547,6 +2547,14 @@ W: http://oss.sgi.com/projects/xfs S: Supported +DMAPI +P: Silicon Graphics Inc +M: xfs-masters@oss.sgi.com +M: roehrich@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.10-xfs/fs/Kconfig =================================================================== --- 2.6.10-xfs.orig/fs/Kconfig 2005-01-05 14:36:30.000000000 +1100 +++ 2.6.10-xfs/fs/Kconfig 2005-01-05 15:09:54.000000000 +1100 @@ -294,6 +294,7 @@ config XFS_FS tristate "XFS filesystem support" + select DMAPI if XFS_DMAPI help XFS is a high performance journaling filesystem which originated on the SGI IRIX platform. It is completely multi-threaded, can @@ -345,6 +346,19 @@ with or without the generic quota support enabled (CONFIG_QUOTA) - they are completely independent subsystems. +config XFS_DMAPI + bool "DMAPI support" + depends on XFS_FS + 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. + You should enable generic DMAPI support for this. + + If unsure, say N. + config XFS_SECURITY bool "Security Label support" depends on XFS_FS @@ -402,6 +416,25 @@ If you don't know whether you need it, then you don't need it: answer N. +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.10-xfs/fs/Makefile =================================================================== --- 2.6.10-xfs.orig/fs/Makefile 2005-01-05 14:36:30.000000000 +1100 +++ 2.6.10-xfs/fs/Makefile 2005-01-05 15:09:54.000000000 +1100 @@ -90,6 +90,7 @@ obj-$(CONFIG_SUN_OPENPROMFS) += openpromfs/ obj-$(CONFIG_JFS_FS) += jfs/ obj-$(CONFIG_XFS_FS) += xfs/ +obj-$(CONFIG_DMAPI) += dmapi/ obj-$(CONFIG_AFS_FS) += afs/ obj-$(CONFIG_BEFS_FS) += befs/ obj-$(CONFIG_HOSTFS) += hostfs/ Index: 2.6.10-xfs/include/linux/mm.h =================================================================== --- 2.6.10-xfs.orig/include/linux/mm.h 2005-01-05 14:36:31.000000000 +1100 +++ 2.6.10-xfs/include/linux/mm.h 2005-01-05 15:09:54.000000000 +1100 @@ -177,6 +177,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.10-xfs/mm/mprotect.c =================================================================== --- 2.6.10-xfs.orig/mm/mprotect.c 2005-01-05 14:36:32.000000000 +1100 +++ 2.6.10-xfs/mm/mprotect.c 2005-01-05 15:09:54.000000000 +1100 @@ -268,6 +268,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.10-xfs/mm/prio_tree.c =================================================================== --- 2.6.10-xfs.orig/mm/prio_tree.c 2005-01-05 14:36:32.000000000 +1100 +++ 2.6.10-xfs/mm/prio_tree.c 2005-01-05 15:09:54.000000000 +1100 @@ -654,3 +654,4 @@ } else return NULL; } +EXPORT_SYMBOL(vma_prio_tree_next);