%patch Index: 2.4.x-xfs/Documentation/Configure.help =================================================================== --- 2.4.x-xfs.orig/Documentation/Configure.help Fri May 14 14:54:00 2004 +++ 2.4.x-xfs/Documentation/Configure.help Fri May 28 13:28:39 2004 @@ -17393,6 +17393,20 @@ system of your root partition is compiled as a module, you'll need to use an initial ramdisk (initrd) to boot. +DMAPI support +CONFIG_XFS_DMAPI + 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 XFS is built as module (= code which can be inserted in and + removed from the running kernel whenever you want), this code will + also be built as module. It is called xfs_dmapi.o. + + If unsure, say N. + Quota support CONFIG_XFS_QUOTA If you say Y here, you will be able to set limits for disk usage on Index: 2.4.x-xfs/Documentation/filesystems/xfs.txt =================================================================== --- 2.4.x-xfs.orig/Documentation/filesystems/xfs.txt Fri May 14 14:53:37 2004 +++ 2.4.x-xfs/Documentation/filesystems/xfs.txt Fri May 28 13:28:39 2004 @@ -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.4.x-xfs/MAINTAINERS =================================================================== --- 2.4.x-xfs.orig/MAINTAINERS Tue Apr 20 09:06:36 2004 +++ 2.4.x-xfs/MAINTAINERS Fri May 28 13:29:22 2004 @@ -2167,6 +2167,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.4.x-xfs/fs/Config.in =================================================================== --- 2.4.x-xfs.orig/fs/Config.in Fri May 14 14:54:02 2004 +++ 2.4.x-xfs/fs/Config.in Fri May 14 14:54:03 2004 @@ -104,6 +104,7 @@ tristate 'XFS filesystem support' CONFIG_XFS_FS dep_mbool ' POSIX ACL support' CONFIG_XFS_POSIX_ACL $CONFIG_XFS_FS dep_tristate ' Quota support' CONFIG_XFS_QUOTA $CONFIG_XFS_FS +dep_tristate ' DMAPI support' CONFIG_XFS_DMAPI $CONFIG_XFS_FS dep_mbool ' Realtime support (EXPERIMENTAL)' CONFIG_XFS_RT $CONFIG_XFS_FS $CONFIG_EXPERIMENTAL dep_mbool ' Tracing support (EXPERIMENTAL)' CONFIG_XFS_TRACE $CONFIG_XFS_FS $CONFIG_EXPERIMENTAL dep_mbool ' Debugging support (EXPERIMENTAL)' CONFIG_XFS_DEBUG $CONFIG_XFS_FS $CONFIG_EXPERIMENTAL Index: 2.4.x-xfs/include/linux/mm.h =================================================================== --- 2.4.x-xfs.orig/include/linux/mm.h Fri May 14 14:53:37 2004 +++ 2.4.x-xfs/include/linux/mm.h Fri May 14 14:54:03 2004 @@ -134,6 +134,8 @@ void (*open)(struct vm_area_struct * area); void (*close)(struct vm_area_struct * area); struct page * (*nopage)(struct vm_area_struct * area, unsigned long address, int unused); +#define HAVE_VMOP_MPROTECT + int (*mprotect)(struct vm_area_struct * area, unsigned int newflags); }; /* Index: 2.4.x-xfs/mm/mprotect.c =================================================================== --- 2.4.x-xfs.orig/mm/mprotect.c Fri May 14 14:53:37 2004 +++ 2.4.x-xfs/mm/mprotect.c Fri May 14 14:54:03 2004 @@ -300,6 +300,11 @@ goto out; } + if (vma->vm_ops && vma->vm_ops->mprotect) { + error = vma->vm_ops->mprotect(vma, newflags); + if (error < 0) + goto out; + } if (vma->vm_end > end) { error = mprotect_fixup(vma, &prev, nstart, end, newflags); goto out;