[BACK]Return to dmapi-enable CVS log [TXT][DIR] Up to [Development] / linux-2.6-xfs-all / split-patches

File: [Development] / linux-2.6-xfs-all / split-patches / dmapi-enable (download)

Revision 1.22, Mon Mar 20 14:26:57 2006 UTC (11 years, 7 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.21: +11 -11 lines

Merge up to 2.6.16.
Merge of 2.6.x-xfs-melb:linux:25519a by kenmcd.

%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-20 17:56:28.989628225 +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-20 17:55:33.520640692 +1100
+++ 2.6.x-xfs/MAINTAINERS	2006-03-20 17:56:28.991581084 +1100
@@ -3062,6 +3062,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-20 17:56:28.992557513 +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-20 17:56:28.993533942 +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-20 17:56:28.994510371 +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-20 17:56:28.995486800 +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-20 17:56:28.996463230 +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-20 17:56:28.996463230 +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-20 17:56:28.997439659 +1100
@@ -11,6 +11,7 @@
  * 02Feb2004	Initial version
  */
 
+#include <linux/module.h>
 #include <linux/mm.h>
 #include <linux/prio_tree.h>
 
@@ -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(+)