File: [Development] / linux-2.6-xfs-all / split-patches / dmapi-enable (download)
Revision 1.12, Fri Mar 4 14:05:07 2005 UTC (12 years, 7 months ago) by nathans.longdrop.melbourne.sgi.com
Branch: MAIN
Changes since 1.11: +65 -21
lines
Update DMAPI split patch for merge, remove find_exported_dentry patch.
Merge of 2.6.x-xfs-melb:linux:21718a by kenmcd.
|
%patch
Index: 2.6.x-xfs/Documentation/filesystems/xfs.txt
===================================================================
--- 2.6.x-xfs.orig/Documentation/filesystems/xfs.txt 2005-01-06 11:10:16.000000000 +1100
+++ 2.6.x-xfs/Documentation/filesystems/xfs.txt 2005-03-04 15:53:55.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.x-xfs/MAINTAINERS
===================================================================
--- 2.6.x-xfs.orig/MAINTAINERS 2005-01-06 11:10:16.000000000 +1100
+++ 2.6.x-xfs/MAINTAINERS 2005-03-04 15:53:55.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.x-xfs/fs/Kconfig
===================================================================
--- 2.6.x-xfs.orig/fs/Kconfig 2005-01-06 11:10:16.000000000 +1100
+++ 2.6.x-xfs/fs/Kconfig 2005-03-04 15:53:55.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.x-xfs/fs/Makefile
===================================================================
--- 2.6.x-xfs.orig/fs/Makefile 2005-01-06 11:10:16.000000000 +1100
+++ 2.6.x-xfs/fs/Makefile 2005-03-04 15:53:55.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.x-xfs/fs/exec.c
===================================================================
--- 2.6.x-xfs.orig/fs/exec.c 2005-03-04 15:59:33.000000000 +1100
+++ 2.6.x-xfs/fs/exec.c 2005-03-04 16:05:08.000000000 +1100
@@ -495,6 +495,13 @@
if (!err) {
file = dentry_open(nd.dentry, nd.mnt, 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 2005-01-06 11:10:16.000000000 +1100
+++ 2.6.x-xfs/include/linux/mm.h 2005-03-04 15:53:55.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.x-xfs/include/linux/fs.h
===================================================================
--- 2.6.x-xfs.orig/include/linux/fs.h 2005-03-04 16:04:37.000000000 +1100
+++ 2.6.x-xfs/include/linux/fs.h 2005-03-04 16:05:09.000000000 +1100
@@ -931,6 +931,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-01-06 11:10:16.000000000 +1100
+++ 2.6.x-xfs/mm/mprotect.c 2005-03-04 15:53:55.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.x-xfs/mm/prio_tree.c
===================================================================
--- 2.6.x-xfs.orig/mm/prio_tree.c 2005-01-06 11:10:16.000000000 +1100
+++ 2.6.x-xfs/mm/prio_tree.c 2005-03-04 15:53:55.000000000 +1100
@@ -654,3 +654,4 @@
} else
return NULL;
}
+EXPORT_SYMBOL(vma_prio_tree_next);
%diffstat
Documentation/filesystems/xfs.txt | 9 +++++++++
MAINTAINERS | 8 ++++++++
fs/Kconfig | 33 +++++++++++++++++++++++++++++++++
fs/Makefile | 1 +
fs/exec.c | 7 +++++++
include/linux/fs.h | 2 ++
include/linux/mm.h | 2 ++
mm/mprotect.c | 5 +++++
mm/prio_tree.c | 1 +
9 files changed, 68 insertions(+)