diff options
Diffstat (limited to 'fs')
70 files changed, 27 insertions, 779 deletions
diff --git a/fs/xfs/Makefile b/fs/xfs/Makefile index c8fb13f83b3..a5239b1713b 100644 --- a/fs/xfs/Makefile +++ b/fs/xfs/Makefile @@ -90,8 +90,7 @@ xfs-y				+= xfs_alloc.o \  				   xfs_trans_item.o \  				   xfs_utils.o \  				   xfs_vnodeops.o \ -				   xfs_rw.o \ -				   xfs_dmops.o +				   xfs_rw.o  xfs-$(CONFIG_XFS_TRACE)		+= xfs_btree_trace.o diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 34640d6dbdc..4cd5e00f0c5 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -23,7 +23,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_trans.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 2ee3f7a6016..4b2177f5b22 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -39,7 +39,6 @@  #include "xfs_inum.h"  #include "xfs_log.h"  #include "xfs_ag.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_trace.h" diff --git a/fs/xfs/linux-2.6/xfs_dmapi_priv.h b/fs/xfs/linux-2.6/xfs_dmapi_priv.h deleted file mode 100644 index a8b0b1685ee..00000000000 --- a/fs/xfs/linux-2.6/xfs_dmapi_priv.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2000-2006 Silicon Graphics, Inc. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write the Free Software Foundation, - * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA - */ -#ifndef __XFS_DMAPI_PRIV_H__ -#define __XFS_DMAPI_PRIV_H__ - -/* - *	Based on IO_ISDIRECT, decide which i_ flag is set. - */ -#define DM_SEM_FLAG_RD(ioflags) (((ioflags) & IO_ISDIRECT) ? \ -			      DM_FLAGS_IMUX : 0) -#define DM_SEM_FLAG_WR	(DM_FLAGS_IALLOCSEM_WR | DM_FLAGS_IMUX) - -#endif /*__XFS_DMAPI_PRIV_H__*/ diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c index e7839ee49e4..09c91325f72 100644 --- a/fs/xfs/linux-2.6/xfs_export.c +++ b/fs/xfs/linux-2.6/xfs_export.c @@ -23,7 +23,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_export.h"  #include "xfs_vnodeops.h" diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index 257a56b127c..dca06131551 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c @@ -24,7 +24,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_trans.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" @@ -275,20 +274,6 @@ xfs_file_aio_read(  		mutex_lock(&inode->i_mutex);  	xfs_ilock(ip, XFS_IOLOCK_SHARED); -	if (DM_EVENT_ENABLED(ip, DM_EVENT_READ) && !(ioflags & IO_INVIS)) { -		int dmflags = FILP_DELAY_FLAG(file) | DM_SEM_FLAG_RD(ioflags); -		int iolock = XFS_IOLOCK_SHARED; - -		ret = -XFS_SEND_DATA(mp, DM_EVENT_READ, ip, iocb->ki_pos, size, -					dmflags, &iolock); -		if (ret) { -			xfs_iunlock(ip, XFS_IOLOCK_SHARED); -			if (unlikely(ioflags & IO_ISDIRECT)) -				mutex_unlock(&inode->i_mutex); -			return ret; -		} -	} -  	if (unlikely(ioflags & IO_ISDIRECT)) {  		if (inode->i_mapping->nrpages) {  			ret = -xfs_flushinval_pages(ip, @@ -321,7 +306,6 @@ xfs_file_splice_read(  	unsigned int		flags)  {  	struct xfs_inode	*ip = XFS_I(infilp->f_mapping->host); -	struct xfs_mount	*mp = ip->i_mount;  	int			ioflags = 0;  	ssize_t			ret; @@ -335,18 +319,6 @@ xfs_file_splice_read(  	xfs_ilock(ip, XFS_IOLOCK_SHARED); -	if (DM_EVENT_ENABLED(ip, DM_EVENT_READ) && !(ioflags & IO_INVIS)) { -		int iolock = XFS_IOLOCK_SHARED; -		int error; - -		error = XFS_SEND_DATA(mp, DM_EVENT_READ, ip, *ppos, count, -					FILP_DELAY_FLAG(infilp), &iolock); -		if (error) { -			xfs_iunlock(ip, XFS_IOLOCK_SHARED); -			return -error; -		} -	} -  	trace_xfs_file_splice_read(ip, count, *ppos, ioflags);  	ret = generic_file_splice_read(infilp, ppos, pipe, count, flags); @@ -367,7 +339,6 @@ xfs_file_splice_write(  {  	struct inode		*inode = outfilp->f_mapping->host;  	struct xfs_inode	*ip = XFS_I(inode); -	struct xfs_mount	*mp = ip->i_mount;  	xfs_fsize_t		isize, new_size;  	int			ioflags = 0;  	ssize_t			ret; @@ -382,18 +353,6 @@ xfs_file_splice_write(  	xfs_ilock(ip, XFS_IOLOCK_EXCL); -	if (DM_EVENT_ENABLED(ip, DM_EVENT_WRITE) && !(ioflags & IO_INVIS)) { -		int iolock = XFS_IOLOCK_EXCL; -		int error; - -		error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, ip, *ppos, count, -					FILP_DELAY_FLAG(outfilp), &iolock); -		if (error) { -			xfs_iunlock(ip, XFS_IOLOCK_EXCL); -			return -error; -		} -	} -  	new_size = *ppos + count;  	xfs_ilock(ip, XFS_ILOCK_EXCL); @@ -627,7 +586,6 @@ xfs_file_aio_write(  	int			ioflags = 0;  	xfs_fsize_t		isize, new_size;  	int			iolock; -	int			eventsent = 0;  	size_t			ocount = 0, count;  	int			need_i_mutex; @@ -673,33 +631,6 @@ start:  		goto out_unlock_mutex;  	} -	if ((DM_EVENT_ENABLED(ip, DM_EVENT_WRITE) && -	    !(ioflags & IO_INVIS) && !eventsent)) { -		int		dmflags = FILP_DELAY_FLAG(file); - -		if (need_i_mutex) -			dmflags |= DM_FLAGS_IMUX; - -		xfs_iunlock(ip, XFS_ILOCK_EXCL); -		error = XFS_SEND_DATA(ip->i_mount, DM_EVENT_WRITE, ip, -				      pos, count, dmflags, &iolock); -		if (error) { -			goto out_unlock_internal; -		} -		xfs_ilock(ip, XFS_ILOCK_EXCL); -		eventsent = 1; - -		/* -		 * The iolock was dropped and reacquired in XFS_SEND_DATA -		 * so we have to recheck the size when appending. -		 * We will only "goto start;" once, since having sent the -		 * event prevents another call to XFS_SEND_DATA, which is -		 * what allows the size to change in the first place. -		 */ -		if ((file->f_flags & O_APPEND) && pos != ip->i_size) -			goto start; -	} -  	if (ioflags & IO_ISDIRECT) {  		xfs_buftarg_t	*target =  			XFS_IS_REALTIME_INODE(ip) ? @@ -830,22 +761,6 @@ write_retry:  		xfs_iunlock(ip, XFS_ILOCK_EXCL);  	} -	if (ret == -ENOSPC && -	    DM_EVENT_ENABLED(ip, DM_EVENT_NOSPACE) && !(ioflags & IO_INVIS)) { -		xfs_iunlock(ip, iolock); -		if (need_i_mutex) -			mutex_unlock(&inode->i_mutex); -		error = XFS_SEND_NAMESP(ip->i_mount, DM_EVENT_NOSPACE, ip, -				DM_RIGHT_NULL, ip, DM_RIGHT_NULL, NULL, NULL, -				0, 0, 0); /* Delay flag intentionally  unused */ -		if (need_i_mutex) -			mutex_lock(&inode->i_mutex); -		xfs_ilock(ip, iolock); -		if (error) -			goto out_unlock_internal; -		goto start; -	} -  	error = -ret;  	if (ret <= 0)  		goto out_unlock_internal; diff --git a/fs/xfs/linux-2.6/xfs_fs_subr.c b/fs/xfs/linux-2.6/xfs_fs_subr.c index b6918d76bc7..1f279b012f9 100644 --- a/fs/xfs/linux-2.6/xfs_fs_subr.c +++ b/fs/xfs/linux-2.6/xfs_fs_subr.c @@ -21,10 +21,6 @@  #include "xfs_inode.h"  #include "xfs_trace.h" -int  fs_noerr(void) { return 0; } -int  fs_nosys(void) { return ENOSYS; } -void fs_noval(void) { return; } -  /*   * note: all filemap functions return negative error codes. These   * need to be inverted before returning to the xfs core functions. diff --git a/fs/xfs/linux-2.6/xfs_fs_subr.h b/fs/xfs/linux-2.6/xfs_fs_subr.h deleted file mode 100644 index 82bb19b2599..00000000000 --- a/fs/xfs/linux-2.6/xfs_fs_subr.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2000,2002,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write the Free Software Foundation, - * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA - */ -#ifndef	__XFS_FS_SUBR_H__ -#define __XFS_FS_SUBR_H__ - -extern int  fs_noerr(void); -extern int  fs_nosys(void); -extern void fs_noval(void); - -#endif	/* __XFS_FS_SUBR_H__ */ diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index e59a8106283..addd37051aa 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c @@ -25,7 +25,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_alloc.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" @@ -1116,16 +1115,7 @@ xfs_ioctl_setattr(  	xfs_qm_dqrele(udqp);  	xfs_qm_dqrele(gdqp); -	if (code) -		return code; - -	if (DM_EVENT_ENABLED(ip, DM_EVENT_ATTRIBUTE)) { -		XFS_SEND_NAMESP(mp, DM_EVENT_ATTRIBUTE, ip, DM_RIGHT_NULL, -				NULL, DM_RIGHT_NULL, NULL, NULL, 0, 0, -				(mask & FSX_NONBLOCK) ? DM_FLAGS_NDELAY : 0); -	} - -	return 0; +	return code;   error_return:  	xfs_qm_dqrele(udqp); diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c index 52ed49e6465..e67be3ae354 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl32.c +++ b/fs/xfs/linux-2.6/xfs_ioctl32.c @@ -29,7 +29,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_attr_sf.h" diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 44f0b2de153..ce3118477d9 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c @@ -26,7 +26,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_alloc.h" -#include "xfs_dmapi.h"  #include "xfs_quota.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/linux-2.6/xfs_linux.h b/fs/xfs/linux-2.6/xfs_linux.h index facfb323a70..998a9d7fb9c 100644 --- a/fs/xfs/linux-2.6/xfs_linux.h +++ b/fs/xfs/linux-2.6/xfs_linux.h @@ -87,7 +87,6 @@  #include <xfs_aops.h>  #include <xfs_super.h>  #include <xfs_globals.h> -#include <xfs_fs_subr.h>  #include <xfs_buf.h>  /* diff --git a/fs/xfs/linux-2.6/xfs_quotaops.c b/fs/xfs/linux-2.6/xfs_quotaops.c index 067cafbfc63..bfd5ac9d1f6 100644 --- a/fs/xfs/linux-2.6/xfs_quotaops.c +++ b/fs/xfs/linux-2.6/xfs_quotaops.c @@ -16,7 +16,6 @@   * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA   */  #include "xfs.h" -#include "xfs_dmapi.h"  #include "xfs_sb.h"  #include "xfs_inum.h"  #include "xfs_log.h" diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 80938c736c2..4c7b8f9f4de 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -25,7 +25,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_alloc.h" -#include "xfs_dmapi.h"  #include "xfs_quota.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h" @@ -116,9 +115,6 @@ mempool_t *xfs_ioend_pool;  #define MNTOPT_GQUOTANOENF "gqnoenforce"/* group quota limit enforcement */  #define MNTOPT_PQUOTANOENF "pqnoenforce"/* project quota limit enforcement */  #define MNTOPT_QUOTANOENF  "qnoenforce"	/* same as uqnoenforce */ -#define MNTOPT_DMAPI	"dmapi"		/* DMI enabled (DMAPI / XDSM) */ -#define MNTOPT_XDSM	"xdsm"		/* DMI enabled (DMAPI / XDSM) */ -#define MNTOPT_DMI	"dmi"		/* DMI enabled (DMAPI / XDSM) */  #define MNTOPT_DELAYLOG   "delaylog"	/* Delayed loging enabled */  #define MNTOPT_NODELAYLOG "nodelaylog"	/* Delayed loging disabled */ @@ -172,15 +168,13 @@ suffix_strtoul(char *s, char **endp, unsigned int base)  STATIC int  xfs_parseargs(  	struct xfs_mount	*mp, -	char			*options, -	char			**mtpt) +	char			*options)  {  	struct super_block	*sb = mp->m_super;  	char			*this_char, *value, *eov;  	int			dsunit = 0;  	int			dswidth = 0;  	int			iosize = 0; -	int			dmapi_implies_ikeep = 1;  	__uint8_t		iosizelog = 0;  	/* @@ -243,15 +237,10 @@ xfs_parseargs(  			if (!mp->m_logname)  				return ENOMEM;  		} else if (!strcmp(this_char, MNTOPT_MTPT)) { -			if (!value || !*value) { -				cmn_err(CE_WARN, -					"XFS: %s option requires an argument", -					this_char); -				return EINVAL; -			} -			*mtpt = kstrndup(value, MAXNAMELEN, GFP_KERNEL); -			if (!*mtpt) -				return ENOMEM; +			cmn_err(CE_WARN, +				"XFS: %s option not allowed on this system", +				this_char); +			return EINVAL;  		} else if (!strcmp(this_char, MNTOPT_RTDEV)) {  			if (!value || !*value) {  				cmn_err(CE_WARN, @@ -329,7 +318,6 @@ xfs_parseargs(  		} else if (!strcmp(this_char, MNTOPT_IKEEP)) {  			mp->m_flags |= XFS_MOUNT_IKEEP;  		} else if (!strcmp(this_char, MNTOPT_NOIKEEP)) { -			dmapi_implies_ikeep = 0;  			mp->m_flags &= ~XFS_MOUNT_IKEEP;  		} else if (!strcmp(this_char, MNTOPT_LARGEIO)) {  			mp->m_flags &= ~XFS_MOUNT_COMPAT_IOSIZE; @@ -370,12 +358,6 @@ xfs_parseargs(  		} else if (!strcmp(this_char, MNTOPT_GQUOTANOENF)) {  			mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE);  			mp->m_qflags &= ~XFS_OQUOTA_ENFD; -		} else if (!strcmp(this_char, MNTOPT_DMAPI)) { -			mp->m_flags |= XFS_MOUNT_DMAPI; -		} else if (!strcmp(this_char, MNTOPT_XDSM)) { -			mp->m_flags |= XFS_MOUNT_DMAPI; -		} else if (!strcmp(this_char, MNTOPT_DMI)) { -			mp->m_flags |= XFS_MOUNT_DMAPI;  		} else if (!strcmp(this_char, MNTOPT_DELAYLOG)) {  			mp->m_flags |= XFS_MOUNT_DELAYLOG;  			cmn_err(CE_WARN, @@ -430,12 +412,6 @@ xfs_parseargs(  		return EINVAL;  	} -	if ((mp->m_flags & XFS_MOUNT_DMAPI) && (!*mtpt || *mtpt[0] == '\0')) { -		printk("XFS: %s option needs the mount point option as well\n", -			MNTOPT_DMAPI); -		return EINVAL; -	} -  	if ((dsunit && !dswidth) || (!dsunit && dswidth)) {  		cmn_err(CE_WARN,  			"XFS: sunit and swidth must be specified together"); @@ -449,18 +425,6 @@ xfs_parseargs(  		return EINVAL;  	} -	/* -	 * Applications using DMI filesystems often expect the -	 * inode generation number to be monotonically increasing. -	 * If we delete inode chunks we break this assumption, so -	 * keep unused inode chunks on disk for DMI filesystems -	 * until we come up with a better solution. -	 * Note that if "ikeep" or "noikeep" mount options are -	 * supplied, then they are honored. -	 */ -	if ((mp->m_flags & XFS_MOUNT_DMAPI) && dmapi_implies_ikeep) -		mp->m_flags |= XFS_MOUNT_IKEEP; -  done:  	if (!(mp->m_flags & XFS_MOUNT_NOALIGN)) {  		/* @@ -542,7 +506,6 @@ xfs_showargs(  		{ XFS_MOUNT_OSYNCISOSYNC,	"," MNTOPT_OSYNCISOSYNC },  		{ XFS_MOUNT_ATTR2,		"," MNTOPT_ATTR2 },  		{ XFS_MOUNT_FILESTREAMS,	"," MNTOPT_FILESTREAM }, -		{ XFS_MOUNT_DMAPI,		"," MNTOPT_DMAPI },  		{ XFS_MOUNT_GRPID,		"," MNTOPT_GRPID },  		{ XFS_MOUNT_DELAYLOG,		"," MNTOPT_DELAYLOG },  		{ 0, NULL } @@ -1207,8 +1170,6 @@ xfs_fs_put_super(  		xfs_sync_attr(mp, 0);  	} -	XFS_SEND_PREUNMOUNT(mp); -  	/*  	 * Blow away any referenced inode in the filestreams cache.  	 * This can and will cause log traffic as inodes go inactive @@ -1218,14 +1179,11 @@ xfs_fs_put_super(  	XFS_bflush(mp->m_ddev_targp); -	XFS_SEND_UNMOUNT(mp); -  	xfs_unmountfs(mp);  	xfs_freesb(mp);  	xfs_inode_shrinker_unregister(mp);  	xfs_icsb_destroy_counters(mp);  	xfs_close_devices(mp); -	xfs_dmops_put(mp);  	xfs_free_fsname(mp);  	kfree(mp);  } @@ -1543,7 +1501,6 @@ xfs_fs_fill_super(  	struct inode		*root;  	struct xfs_mount	*mp = NULL;  	int			flags = 0, error = ENOMEM; -	char			*mtpt = NULL;  	mp = kzalloc(sizeof(struct xfs_mount), GFP_KERNEL);  	if (!mp) @@ -1559,7 +1516,7 @@ xfs_fs_fill_super(  	mp->m_super = sb;  	sb->s_fs_info = mp; -	error = xfs_parseargs(mp, (char *)data, &mtpt); +	error = xfs_parseargs(mp, (char *)data);  	if (error)  		goto out_free_fsname; @@ -1571,16 +1528,12 @@ xfs_fs_fill_super(  #endif  	sb->s_op = &xfs_super_operations; -	error = xfs_dmops_get(mp); -	if (error) -		goto out_free_fsname; -  	if (silent)  		flags |= XFS_MFSI_QUIET;  	error = xfs_open_devices(mp);  	if (error) -		goto out_put_dmops; +		goto out_free_fsname;  	if (xfs_icsb_init_counters(mp))  		mp->m_flags |= XFS_MOUNT_NO_PERCPU_SB; @@ -1608,8 +1561,6 @@ xfs_fs_fill_super(  	if (error)  		goto out_filestream_unmount; -	XFS_SEND_MOUNT(mp, DM_RIGHT_NULL, mtpt, mp->m_fsname); -  	sb->s_magic = XFS_SB_MAGIC;  	sb->s_blocksize = mp->m_sb.sb_blocksize;  	sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1; @@ -1638,7 +1589,6 @@ xfs_fs_fill_super(  	xfs_inode_shrinker_register(mp); -	kfree(mtpt);  	return 0;   out_filestream_unmount: @@ -1648,11 +1598,8 @@ xfs_fs_fill_super(   out_destroy_counters:  	xfs_icsb_destroy_counters(mp);  	xfs_close_devices(mp); - out_put_dmops: -	xfs_dmops_put(mp);   out_free_fsname:  	xfs_free_fsname(mp); -	kfree(mtpt);  	kfree(mp);   out:  	return -error; diff --git a/fs/xfs/linux-2.6/xfs_super.h b/fs/xfs/linux-2.6/xfs_super.h index 519618e9279..1ef4a4d2d99 100644 --- a/fs/xfs/linux-2.6/xfs_super.h +++ b/fs/xfs/linux-2.6/xfs_super.h @@ -56,12 +56,6 @@ extern void xfs_qm_exit(void);  # define XFS_BIGFS_STRING  #endif -#ifdef CONFIG_XFS_DMAPI -# define XFS_DMAPI_STRING	"dmapi support, " -#else -# define XFS_DMAPI_STRING -#endif -  #ifdef DEBUG  # define XFS_DBG_STRING		"debug"  #else @@ -72,7 +66,6 @@ extern void xfs_qm_exit(void);  				XFS_SECURITY_STRING \  				XFS_REALTIME_STRING \  				XFS_BIGFS_STRING \ -				XFS_DMAPI_STRING \  				XFS_DBG_STRING /* DBG must be last */  struct xfs_inode; diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index a51a07c3a70..ce323377a70 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/linux-2.6/xfs_trace.c b/fs/xfs/linux-2.6/xfs_trace.c index d12be8470cb..03e2dca36d4 100644 --- a/fs/xfs/linux-2.6/xfs_trace.c +++ b/fs/xfs/linux-2.6/xfs_trace.c @@ -34,7 +34,6 @@  #include "xfs_dinode.h"  #include "xfs_inode.h"  #include "xfs_btree.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_ialloc.h"  #include "xfs_itable.h" diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 585e7633dfc..3c111ea4103 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -25,7 +25,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_alloc.h" -#include "xfs_dmapi.h"  #include "xfs_quota.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/quota/xfs_dquot_item.c b/fs/xfs/quota/xfs_dquot_item.c index 8d89a24ae32..15c211bd18d 100644 --- a/fs/xfs/quota/xfs_dquot_item.c +++ b/fs/xfs/quota/xfs_dquot_item.c @@ -25,7 +25,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_alloc.h" -#include "xfs_dmapi.h"  #include "xfs_quota.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index 67c018392d6..0e01edb00cd 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c @@ -25,7 +25,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_alloc.h" -#include "xfs_dmapi.h"  #include "xfs_quota.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/quota/xfs_qm_bhv.c b/fs/xfs/quota/xfs_qm_bhv.c index 97b410c1279..7283bccb37a 100644 --- a/fs/xfs/quota/xfs_qm_bhv.c +++ b/fs/xfs/quota/xfs_qm_bhv.c @@ -25,7 +25,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_alloc.h" -#include "xfs_dmapi.h"  #include "xfs_quota.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/quota/xfs_qm_stats.c b/fs/xfs/quota/xfs_qm_stats.c index 3d1fc79532e..446ae61af9a 100644 --- a/fs/xfs/quota/xfs_qm_stats.c +++ b/fs/xfs/quota/xfs_qm_stats.c @@ -25,7 +25,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_alloc.h" -#include "xfs_dmapi.h"  #include "xfs_quota.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c index b4487764e92..b286e0a3111 100644 --- a/fs/xfs/quota/xfs_qm_syscalls.c +++ b/fs/xfs/quota/xfs_qm_syscalls.c @@ -28,7 +28,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_alloc.h" -#include "xfs_dmapi.h"  #include "xfs_quota.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/quota/xfs_trans_dquot.c b/fs/xfs/quota/xfs_trans_dquot.c index 061d827da33..04155c43b1b 100644 --- a/fs/xfs/quota/xfs_trans_dquot.c +++ b/fs/xfs/quota/xfs_trans_dquot.c @@ -25,7 +25,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_alloc.h" -#include "xfs_dmapi.h"  #include "xfs_quota.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/support/debug.c b/fs/xfs/support/debug.c index 3f3610a7ee0..975aa10e1a4 100644 --- a/fs/xfs/support/debug.c +++ b/fs/xfs/support/debug.c @@ -22,7 +22,6 @@  #include "xfs_sb.h"  #include "xfs_inum.h"  #include "xfs_ag.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_error.h" diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index a7fbe8a99b1..42b4b52644e 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_alloc_btree.c b/fs/xfs/xfs_alloc_btree.c index 83f49421875..7d638a5d1f0 100644 --- a/fs/xfs/xfs_alloc_btree.c +++ b/fs/xfs/xfs_alloc_btree.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c index b9c196a53c4..426748955e3 100644 --- a/fs/xfs/xfs_attr.c +++ b/fs/xfs/xfs_attr.c @@ -26,7 +26,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_da_btree.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_attr_leaf.c b/fs/xfs/xfs_attr_leaf.c index a90ce74fc25..ca4d11d3a7a 100644 --- a/fs/xfs/xfs_attr_leaf.c +++ b/fs/xfs/xfs_attr_leaf.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_da_btree.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index 99587ded043..9db1418a64b 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -34,7 +34,6 @@  #include "xfs_dinode.h"  #include "xfs_inode.h"  #include "xfs_btree.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_ialloc.h"  #include "xfs_itable.h" @@ -5605,28 +5604,6 @@ xfs_getbmap(  		prealloced = 0;  		fixlen = 1LL << 32;  	} else { -		/* -		 * If the BMV_IF_NO_DMAPI_READ interface bit specified, do -		 * not generate a DMAPI read event.  Otherwise, if the -		 * DM_EVENT_READ bit is set for the file, generate a read -		 * event in order that the DMAPI application may do its thing -		 * before we return the extents.  Usually this means restoring -		 * user file data to regions of the file that look like holes. -		 * -		 * The "old behavior" (from XFS_IOC_GETBMAP) is to not specify -		 * BMV_IF_NO_DMAPI_READ so that read events are generated. -		 * If this were not true, callers of ioctl(XFS_IOC_GETBMAP) -		 * could misinterpret holes in a DMAPI file as true holes, -		 * when in fact they may represent offline user data. -		 */ -		if (DM_EVENT_ENABLED(ip, DM_EVENT_READ) && -		    !(iflags & BMV_IF_NO_DMAPI_READ)) { -			error = XFS_SEND_DATA(mp, DM_EVENT_READ, ip, -					      0, 0, 0, NULL); -			if (error) -				return XFS_ERROR(error); -		} -  		if (ip->i_d.di_format != XFS_DINODE_FMT_EXTENTS &&  		    ip->i_d.di_format != XFS_DINODE_FMT_BTREE &&  		    ip->i_d.di_format != XFS_DINODE_FMT_LOCAL) diff --git a/fs/xfs/xfs_bmap_btree.c b/fs/xfs/xfs_bmap_btree.c index 416e47e54b8..998acf185c4 100644 --- a/fs/xfs/xfs_bmap_btree.c +++ b/fs/xfs/xfs_bmap_btree.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c index 96be4b0f249..beed23ec925 100644 --- a/fs/xfs/xfs_btree.c +++ b/fs/xfs/xfs_btree.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 02a80984aa0..91ad92e83bc 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -24,7 +24,6 @@  #include "xfs_trans.h"  #include "xfs_sb.h"  #include "xfs_ag.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_buf_item.h"  #include "xfs_trans_priv.h" diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c index 0ca556b4bf3..a4a8965a92f 100644 --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_da_btree.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c index 7f159d2a429..86330da07f2 100644 --- a/fs/xfs/xfs_dfrag.c +++ b/fs/xfs/xfs_dfrag.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_dir2.c b/fs/xfs/xfs_dir2.c index 42520f04126..429f234c1b1 100644 --- a/fs/xfs/xfs_dir2.c +++ b/fs/xfs/xfs_dir2.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_da_btree.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_dir2_block.c b/fs/xfs/xfs_dir2_block.c index 779a267b0a8..ce3bac65d05 100644 --- a/fs/xfs/xfs_dir2_block.c +++ b/fs/xfs/xfs_dir2_block.c @@ -24,7 +24,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_da_btree.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_dir2_data.c b/fs/xfs/xfs_dir2_data.c index 498f8d69433..ece400b833d 100644 --- a/fs/xfs/xfs_dir2_data.c +++ b/fs/xfs/xfs_dir2_data.c @@ -24,7 +24,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_da_btree.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_dir2_leaf.c b/fs/xfs/xfs_dir2_leaf.c index e2d89854ec9..99c8fe0cf22 100644 --- a/fs/xfs/xfs_dir2_leaf.c +++ b/fs/xfs/xfs_dir2_leaf.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_da_btree.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_dir2_node.c b/fs/xfs/xfs_dir2_node.c index 78fc4d9ae75..d1b40ea0cd6 100644 --- a/fs/xfs/xfs_dir2_node.c +++ b/fs/xfs/xfs_dir2_node.c @@ -24,7 +24,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_da_btree.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_dir2_sf.c b/fs/xfs/xfs_dir2_sf.c index c1a5945d463..d4e63e68fd7 100644 --- a/fs/xfs/xfs_dir2_sf.c +++ b/fs/xfs/xfs_dir2_sf.c @@ -24,7 +24,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_da_btree.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_dmapi.h b/fs/xfs/xfs_dmapi.h deleted file mode 100644 index 2813cdd7237..00000000000 --- a/fs/xfs/xfs_dmapi.h +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write the Free Software Foundation, - * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA - */ -#ifndef __XFS_DMAPI_H__ -#define __XFS_DMAPI_H__ - -/*	Values used to define the on-disk version of dm_attrname_t. All - *	on-disk attribute names start with the 8-byte string "SGI_DMI_". - * - *      In the on-disk inode, DMAPI attribute names consist of the user-provided - *      name with the DMATTR_PREFIXSTRING pre-pended.  This string must NEVER be - *      changed. - */ - -#define DMATTR_PREFIXLEN	8 -#define DMATTR_PREFIXSTRING	"SGI_DMI_" - -typedef enum { -	DM_EVENT_INVALID	= -1, -	DM_EVENT_CANCEL		= 0,		/* not supported */ -	DM_EVENT_MOUNT		= 1, -	DM_EVENT_PREUNMOUNT	= 2, -	DM_EVENT_UNMOUNT	= 3, -	DM_EVENT_DEBUT		= 4,		/* not supported */ -	DM_EVENT_CREATE		= 5, -	DM_EVENT_CLOSE		= 6,		/* not supported */ -	DM_EVENT_POSTCREATE	= 7, -	DM_EVENT_REMOVE		= 8, -	DM_EVENT_POSTREMOVE	= 9, -	DM_EVENT_RENAME		= 10, -	DM_EVENT_POSTRENAME	= 11, -	DM_EVENT_LINK		= 12, -	DM_EVENT_POSTLINK	= 13, -	DM_EVENT_SYMLINK	= 14, -	DM_EVENT_POSTSYMLINK	= 15, -	DM_EVENT_READ		= 16, -	DM_EVENT_WRITE		= 17, -	DM_EVENT_TRUNCATE	= 18, -	DM_EVENT_ATTRIBUTE	= 19, -	DM_EVENT_DESTROY	= 20, -	DM_EVENT_NOSPACE	= 21, -	DM_EVENT_USER		= 22, -	DM_EVENT_MAX		= 23 -} dm_eventtype_t; -#define HAVE_DM_EVENTTYPE_T - -typedef enum { -	DM_RIGHT_NULL, -	DM_RIGHT_SHARED, -	DM_RIGHT_EXCL -} dm_right_t; -#define HAVE_DM_RIGHT_T - -/* Defines for determining if an event message should be sent. */ -#ifdef HAVE_DMAPI -#define	DM_EVENT_ENABLED(ip, event) ( \ -	unlikely ((ip)->i_mount->m_flags & XFS_MOUNT_DMAPI) && \ -		( ((ip)->i_d.di_dmevmask & (1 << event)) || \ -		  ((ip)->i_mount->m_dmevmask & (1 << event)) ) \ -	) -#else -#define DM_EVENT_ENABLED(ip, event)	(0) -#endif - -#define DM_XFS_VALID_FS_EVENTS		( \ -	(1 << DM_EVENT_PREUNMOUNT)	| \ -	(1 << DM_EVENT_UNMOUNT)		| \ -	(1 << DM_EVENT_NOSPACE)		| \ -	(1 << DM_EVENT_DEBUT)		| \ -	(1 << DM_EVENT_CREATE)		| \ -	(1 << DM_EVENT_POSTCREATE)	| \ -	(1 << DM_EVENT_REMOVE)		| \ -	(1 << DM_EVENT_POSTREMOVE)	| \ -	(1 << DM_EVENT_RENAME)		| \ -	(1 << DM_EVENT_POSTRENAME)	| \ -	(1 << DM_EVENT_LINK)		| \ -	(1 << DM_EVENT_POSTLINK)	| \ -	(1 << DM_EVENT_SYMLINK)		| \ -	(1 << DM_EVENT_POSTSYMLINK)	| \ -	(1 << DM_EVENT_ATTRIBUTE)	| \ -	(1 << DM_EVENT_DESTROY)		) - -/* Events valid in dm_set_eventlist() when called with a file handle for -   a regular file or a symlink.  These events are persistent. -*/ - -#define	DM_XFS_VALID_FILE_EVENTS	( \ -	(1 << DM_EVENT_ATTRIBUTE)	| \ -	(1 << DM_EVENT_DESTROY)		) - -/* Events valid in dm_set_eventlist() when called with a file handle for -   a directory.  These events are persistent. -*/ - -#define	DM_XFS_VALID_DIRECTORY_EVENTS	( \ -	(1 << DM_EVENT_CREATE)		| \ -	(1 << DM_EVENT_POSTCREATE)	| \ -	(1 << DM_EVENT_REMOVE)		| \ -	(1 << DM_EVENT_POSTREMOVE)	| \ -	(1 << DM_EVENT_RENAME)		| \ -	(1 << DM_EVENT_POSTRENAME)	| \ -	(1 << DM_EVENT_LINK)		| \ -	(1 << DM_EVENT_POSTLINK)	| \ -	(1 << DM_EVENT_SYMLINK)		| \ -	(1 << DM_EVENT_POSTSYMLINK)	| \ -	(1 << DM_EVENT_ATTRIBUTE)	| \ -	(1 << DM_EVENT_DESTROY)		) - -/* Events supported by the XFS filesystem. */ -#define	DM_XFS_SUPPORTED_EVENTS		( \ -	(1 << DM_EVENT_MOUNT)		| \ -	(1 << DM_EVENT_PREUNMOUNT)	| \ -	(1 << DM_EVENT_UNMOUNT)		| \ -	(1 << DM_EVENT_NOSPACE)		| \ -	(1 << DM_EVENT_CREATE)		| \ -	(1 << DM_EVENT_POSTCREATE)	| \ -	(1 << DM_EVENT_REMOVE)		| \ -	(1 << DM_EVENT_POSTREMOVE)	| \ -	(1 << DM_EVENT_RENAME)		| \ -	(1 << DM_EVENT_POSTRENAME)	| \ -	(1 << DM_EVENT_LINK)		| \ -	(1 << DM_EVENT_POSTLINK)	| \ -	(1 << DM_EVENT_SYMLINK)		| \ -	(1 << DM_EVENT_POSTSYMLINK)	| \ -	(1 << DM_EVENT_READ)		| \ -	(1 << DM_EVENT_WRITE)		| \ -	(1 << DM_EVENT_TRUNCATE)	| \ -	(1 << DM_EVENT_ATTRIBUTE)	| \ -	(1 << DM_EVENT_DESTROY)		) - - -/* - *	Definitions used for the flags field on dm_send_*_event(). - */ - -#define DM_FLAGS_NDELAY		0x001	/* return EAGAIN after dm_pending() */ -#define DM_FLAGS_UNWANTED	0x002	/* event not in fsys dm_eventset_t */ -#define DM_FLAGS_IMUX		0x004	/* thread holds i_mutex */ -#define DM_FLAGS_IALLOCSEM_RD	0x010	/* thread holds i_alloc_sem rd */ -#define DM_FLAGS_IALLOCSEM_WR	0x020	/* thread holds i_alloc_sem wr */ - -/* - *	Pull in platform specific event flags defines - */ -#include "xfs_dmapi_priv.h" - -/* - *	Macros to turn caller specified delay/block flags into - *	dm_send_xxxx_event flag DM_FLAGS_NDELAY. - */ - -#define FILP_DELAY_FLAG(filp) ((filp->f_flags&(O_NDELAY|O_NONBLOCK)) ? \ -			DM_FLAGS_NDELAY : 0) -#define AT_DELAY_FLAG(f) ((f & XFS_ATTR_NONBLOCK) ? DM_FLAGS_NDELAY : 0) - -#endif  /* __XFS_DMAPI_H__ */ diff --git a/fs/xfs/xfs_dmops.c b/fs/xfs/xfs_dmops.c deleted file mode 100644 index e71e2581c0c..00000000000 --- a/fs/xfs/xfs_dmops.c +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write the Free Software Foundation, - * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA - */ -#include "xfs.h" -#include "xfs_fs.h" -#include "xfs_types.h" -#include "xfs_log.h" -#include "xfs_trans.h" -#include "xfs_sb.h" -#include "xfs_dmapi.h" -#include "xfs_inum.h" -#include "xfs_ag.h" -#include "xfs_mount.h" - - -static struct xfs_dmops xfs_dmcore_stub = { -	.xfs_send_data		= (xfs_send_data_t)fs_nosys, -	.xfs_send_mmap		= (xfs_send_mmap_t)fs_noerr, -	.xfs_send_destroy	= (xfs_send_destroy_t)fs_nosys, -	.xfs_send_namesp	= (xfs_send_namesp_t)fs_nosys, -	.xfs_send_mount		= (xfs_send_mount_t)fs_nosys, -	.xfs_send_unmount	= (xfs_send_unmount_t)fs_noerr, -}; - -int -xfs_dmops_get(struct xfs_mount *mp) -{ -	if (mp->m_flags & XFS_MOUNT_DMAPI) { -		cmn_err(CE_WARN, -			"XFS: dmapi support not available in this kernel."); -		return EINVAL; -	} - -	mp->m_dm_ops = &xfs_dmcore_stub; -	return 0; -} - -void -xfs_dmops_put(struct xfs_mount *mp) -{ -} diff --git a/fs/xfs/xfs_error.c b/fs/xfs/xfs_error.c index 047b8a8e5c2..3d8456cb71f 100644 --- a/fs/xfs/xfs_error.c +++ b/fs/xfs/xfs_error.c @@ -24,7 +24,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_dir2_sf.h" diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c index 409fe81585f..1023b1fadfe 100644 --- a/fs/xfs/xfs_extfree_item.c +++ b/fs/xfs/xfs_extfree_item.c @@ -24,7 +24,6 @@  #include "xfs_buf_item.h"  #include "xfs_sb.h"  #include "xfs_ag.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_trans_priv.h"  #include "xfs_extfree_item.h" diff --git a/fs/xfs/xfs_filestream.c b/fs/xfs/xfs_filestream.c index 390850ee660..ad118dac425 100644 --- a/fs/xfs/xfs_filestream.c +++ b/fs/xfs/xfs_filestream.c @@ -24,7 +24,6 @@  #include "xfs_dinode.h"  #include "xfs_inode.h"  #include "xfs_ag.h" -#include "xfs_dmapi.h"  #include "xfs_log.h"  #include "xfs_trans.h"  #include "xfs_sb.h" diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c index 37a6f62c57b..84c002eab0d 100644 --- a/fs/xfs/xfs_fsops.c +++ b/fs/xfs/xfs_fsops.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c index c7142a064c4..ab76d73d54e 100644 --- a/fs/xfs/xfs_ialloc.c +++ b/fs/xfs/xfs_ialloc.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_ialloc_btree.c b/fs/xfs/xfs_ialloc_btree.c index c282a9af539..0e6563c05e0 100644 --- a/fs/xfs/xfs_ialloc_btree.c +++ b/fs/xfs/xfs_ialloc_btree.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index 8f8b91be2c9..0eb2f965503 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -26,7 +26,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index b76a829d7e2..767c43a8d16 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -28,7 +28,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index cf8249a6000..8c561b970c5 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -26,7 +26,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_trans_priv.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index ef14943829d..a2653aa0f25 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c @@ -25,7 +25,6 @@  #include "xfs_ag.h"  #include "xfs_dir2.h"  #include "xfs_alloc.h" -#include "xfs_dmapi.h"  #include "xfs_quota.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c index 2b86f861051..69abb344f2c 100644 --- a/fs/xfs/xfs_itable.c +++ b/fs/xfs/xfs_itable.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 5215abc8023..03a1ab60c48 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_error.h"  #include "xfs_log_priv.h" diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c index bb17cc044bf..c7585ab160d 100644 --- a/fs/xfs/xfs_log_cil.c +++ b/fs/xfs/xfs_log_cil.c @@ -27,7 +27,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_error.h"  #include "xfs_alloc.h" diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 9ac5cfab27b..f91871397db 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_error.h"  #include "xfs_bmap_btree.h" diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 69f62d8b281..4bf79511f1c 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index 5761087ee8e..e70dc39394a 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -66,65 +66,6 @@ struct xfs_nameops;  struct xfs_ail;  struct xfs_quotainfo; - -/* - * Prototypes and functions for the Data Migration subsystem. - */ - -typedef int	(*xfs_send_data_t)(int, struct xfs_inode *, -			xfs_off_t, size_t, int, int *); -typedef int	(*xfs_send_mmap_t)(struct vm_area_struct *, uint); -typedef int	(*xfs_send_destroy_t)(struct xfs_inode *, dm_right_t); -typedef int	(*xfs_send_namesp_t)(dm_eventtype_t, struct xfs_mount *, -			struct xfs_inode *, dm_right_t, -			struct xfs_inode *, dm_right_t, -			const unsigned char *, const unsigned char *, -			mode_t, int, int); -typedef int	(*xfs_send_mount_t)(struct xfs_mount *, dm_right_t, -			char *, char *); -typedef void	(*xfs_send_unmount_t)(struct xfs_mount *, struct xfs_inode *, -			dm_right_t, mode_t, int, int); - -typedef struct xfs_dmops { -	xfs_send_data_t		xfs_send_data; -	xfs_send_mmap_t		xfs_send_mmap; -	xfs_send_destroy_t	xfs_send_destroy; -	xfs_send_namesp_t	xfs_send_namesp; -	xfs_send_mount_t	xfs_send_mount; -	xfs_send_unmount_t	xfs_send_unmount; -} xfs_dmops_t; - -#define XFS_DMAPI_UNMOUNT_FLAGS(mp) \ -	(((mp)->m_dmevmask & (1 << DM_EVENT_UNMOUNT)) ? 0 : DM_FLAGS_UNWANTED) - -#define XFS_SEND_DATA(mp, ev,ip,off,len,fl,lock) \ -	(*(mp)->m_dm_ops->xfs_send_data)(ev,ip,off,len,fl,lock) -#define XFS_SEND_MMAP(mp, vma,fl) \ -	(*(mp)->m_dm_ops->xfs_send_mmap)(vma,fl) -#define XFS_SEND_DESTROY(mp, ip,right) \ -	(*(mp)->m_dm_ops->xfs_send_destroy)(ip,right) -#define XFS_SEND_NAMESP(mp, ev,b1,r1,b2,r2,n1,n2,mode,rval,fl) \ -	(*(mp)->m_dm_ops->xfs_send_namesp)(ev,NULL,b1,r1,b2,r2,n1,n2,mode,rval,fl) -#define XFS_SEND_MOUNT(mp,right,path,name) \ -	(*(mp)->m_dm_ops->xfs_send_mount)(mp,right,path,name) -#define XFS_SEND_PREUNMOUNT(mp) \ -do { \ -	if (mp->m_flags & XFS_MOUNT_DMAPI) { \ -		(*(mp)->m_dm_ops->xfs_send_namesp)(DM_EVENT_PREUNMOUNT, mp, \ -			(mp)->m_rootip, DM_RIGHT_NULL, \ -			(mp)->m_rootip, DM_RIGHT_NULL, \ -			NULL, NULL, 0, 0, XFS_DMAPI_UNMOUNT_FLAGS(mp)); \ -	} \ -} while (0) -#define XFS_SEND_UNMOUNT(mp) \ -do { \ -	if (mp->m_flags & XFS_MOUNT_DMAPI) { \ -		(*(mp)->m_dm_ops->xfs_send_unmount)(mp, (mp)->m_rootip, \ -			DM_RIGHT_NULL, 0, 0, XFS_DMAPI_UNMOUNT_FLAGS(mp)); \ -	} \ -} while (0) - -  #ifdef HAVE_PERCPU_SB  /* @@ -241,8 +182,6 @@ typedef struct xfs_mount {  	uint			m_chsize;	/* size of next field */  	struct xfs_chash	*m_chash;	/* fs private inode per-cluster  						 * hash table */ -	struct xfs_dmops	*m_dm_ops;	/* vector of DMI ops */ -	struct xfs_qmops	*m_qm_ops;	/* vector of XQM ops */  	atomic_t		m_active_trans;	/* number trans frozen */  #ifdef HAVE_PERCPU_SB  	xfs_icsb_cnts_t __percpu *m_sb_cnts;	/* per-cpu superblock counters */ @@ -269,7 +208,6 @@ typedef struct xfs_mount {  						   must be synchronous except  						   for space allocations */  #define XFS_MOUNT_DELAYLOG	(1ULL << 1)	/* delayed logging is enabled */ -#define XFS_MOUNT_DMAPI		(1ULL << 2)	/* dmapi is enabled */  #define XFS_MOUNT_WAS_CLEAN	(1ULL << 3)  #define XFS_MOUNT_FS_SHUTDOWN	(1ULL << 4)	/* atomic stop of all filesystem  						   operations, typically for @@ -440,11 +378,6 @@ extern int	xfs_sb_validate_fsb_count(struct xfs_sb *, __uint64_t);  extern int	xfs_dev_is_read_only(struct xfs_mount *, char *); -extern int	xfs_dmops_get(struct xfs_mount *); -extern void	xfs_dmops_put(struct xfs_mount *); - -extern struct xfs_dmops xfs_dmcore_xfs; -  #endif	/* __KERNEL__ */  extern void	xfs_mod_sb(struct xfs_trans *, __int64_t); diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c index fc1cda23b81..fa752f495a0 100644 --- a/fs/xfs/xfs_rename.c +++ b/fs/xfs/xfs_rename.c @@ -24,7 +24,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_da_btree.h"  #include "xfs_bmap_btree.h" @@ -119,18 +118,6 @@ xfs_rename(  	xfs_itrace_entry(src_dp);  	xfs_itrace_entry(target_dp); -	if (DM_EVENT_ENABLED(src_dp, DM_EVENT_RENAME) || -	    DM_EVENT_ENABLED(target_dp, DM_EVENT_RENAME)) { -		error = XFS_SEND_NAMESP(mp, DM_EVENT_RENAME, -					src_dp, DM_RIGHT_NULL, -					target_dp, DM_RIGHT_NULL, -					src_name->name, target_name->name, -					0, 0, 0); -		if (error) -			return error; -	} -	/* Return through std_return after this point. */ -  	new_parent = (src_dp != target_dp);  	src_is_directory = ((src_ip->i_d.di_mode & S_IFMT) == S_IFDIR); @@ -369,26 +356,13 @@ xfs_rename(  	 * trans_commit will unlock src_ip, target_ip & decrement  	 * the vnode references.  	 */ -	error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES); - -	/* Fall through to std_return with error = 0 or errno from -	 * xfs_trans_commit	 */ -std_return: -	if (DM_EVENT_ENABLED(src_dp, DM_EVENT_POSTRENAME) || -	    DM_EVENT_ENABLED(target_dp, DM_EVENT_POSTRENAME)) { -		(void) XFS_SEND_NAMESP (mp, DM_EVENT_POSTRENAME, -					src_dp, DM_RIGHT_NULL, -					target_dp, DM_RIGHT_NULL, -					src_name->name, target_name->name, -					0, error, 0); -	} -	return error; +	return xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);   abort_return:  	cancel_flags |= XFS_TRANS_ABORT; -	/* FALLTHROUGH */   error_return:  	xfs_bmap_cancel(&free_list);  	xfs_trans_cancel(tp, cancel_flags); -	goto std_return; + std_return: +	return error;  } diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index a2d32ce335a..c7b20568ee8 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_rw.c b/fs/xfs/xfs_rw.c index e336742a58a..1101bc63ced 100644 --- a/fs/xfs/xfs_rw.c +++ b/fs/xfs/xfs_rw.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index 28547dfce03..2fd44d8fe3a 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_error.h"  #include "xfs_da_btree.h" diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index e799824f724..dc9069568ff 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -24,7 +24,6 @@  #include "xfs_trans.h"  #include "xfs_sb.h"  #include "xfs_ag.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_trans_priv.h"  #include "xfs_error.h" diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 63d81a22f4f..93ed4a5edde 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_trans_extfree.c b/fs/xfs/xfs_trans_extfree.c index 27cce2a9c7e..dfb6a0fdcf9 100644 --- a/fs/xfs/xfs_trans_extfree.c +++ b/fs/xfs/xfs_trans_extfree.c @@ -23,7 +23,6 @@  #include "xfs_trans.h"  #include "xfs_sb.h"  #include "xfs_ag.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_trans_priv.h"  #include "xfs_extfree_item.h" diff --git a/fs/xfs/xfs_trans_inode.c b/fs/xfs/xfs_trans_inode.c index 2559dfec946..4f4df63144d 100644 --- a/fs/xfs/xfs_trans_inode.c +++ b/fs/xfs/xfs_trans_inode.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_alloc_btree.h" diff --git a/fs/xfs/xfs_trans_item.c b/fs/xfs/xfs_trans_item.c index f11d37d06dc..55035a7401c 100644 --- a/fs/xfs/xfs_trans_item.c +++ b/fs/xfs/xfs_trans_item.c @@ -28,7 +28,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  STATIC int	xfs_trans_unlock_chunk(xfs_log_item_chunk_t *, diff --git a/fs/xfs/xfs_utils.c b/fs/xfs/xfs_utils.c index 4d88616bde9..4b1df677abd 100644 --- a/fs/xfs/xfs_utils.c +++ b/fs/xfs/xfs_utils.c @@ -25,7 +25,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_bmap_btree.h"  #include "xfs_dir2_sf.h" diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index c1646838898..f6fd7502fc0 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -26,7 +26,6 @@  #include "xfs_sb.h"  #include "xfs_ag.h"  #include "xfs_dir2.h" -#include "xfs_dmapi.h"  #include "xfs_mount.h"  #include "xfs_da_btree.h"  #include "xfs_bmap_btree.h" @@ -143,16 +142,6 @@ xfs_setattr(  			goto error_return;  		}  	} else { -		if (DM_EVENT_ENABLED(ip, DM_EVENT_TRUNCATE) && -		    !(flags & XFS_ATTR_DMI)) { -			int dmflags = AT_DELAY_FLAG(flags) | DM_SEM_FLAG_WR; -			code = XFS_SEND_DATA(mp, DM_EVENT_TRUNCATE, ip, -				iattr->ia_size, 0, dmflags, NULL); -			if (code) { -				lock_flags = 0; -				goto error_return; -			} -		}  		if (need_iolock)  			lock_flags |= XFS_IOLOCK_EXCL;  	} @@ -470,17 +459,10 @@ xfs_setattr(  			return XFS_ERROR(code);  	} -	if (DM_EVENT_ENABLED(ip, DM_EVENT_ATTRIBUTE) && -	    !(flags & XFS_ATTR_DMI)) { -		(void) XFS_SEND_NAMESP(mp, DM_EVENT_ATTRIBUTE, ip, DM_RIGHT_NULL, -					NULL, DM_RIGHT_NULL, NULL, NULL, -					0, 0, AT_DELAY_FLAG(flags)); -	}  	return 0;   abort_return:  	commit_flags |= XFS_TRANS_ABORT; -	/* FALLTHROUGH */   error_return:  	xfs_qm_dqrele(udqp);  	xfs_qm_dqrele(gdqp); @@ -1060,9 +1042,6 @@ xfs_inactive(  	mp = ip->i_mount; -	if (ip->i_d.di_nlink == 0 && DM_EVENT_ENABLED(ip, DM_EVENT_DESTROY)) -		XFS_SEND_DESTROY(mp, ip, DM_RIGHT_NULL); -  	error = 0;  	/* If this is a read-only mount, don't do this (would generate I/O) */ @@ -1314,16 +1293,6 @@ xfs_create(  	if (XFS_FORCED_SHUTDOWN(mp))  		return XFS_ERROR(EIO); -	if (DM_EVENT_ENABLED(dp, DM_EVENT_CREATE)) { -		error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE, -				dp, DM_RIGHT_NULL, NULL, -				DM_RIGHT_NULL, name->name, NULL, -				mode, 0, 0); - -		if (error) -			return error; -	} -  	if (dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT)  		prid = dp->i_d.di_projid;  	else @@ -1487,16 +1456,7 @@ xfs_create(  	xfs_qm_dqrele(gdqp);  	*ipp = ip; - -	/* Fallthrough to std_return with error = 0  */ - std_return: -	if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTCREATE)) { -		XFS_SEND_NAMESP(mp, DM_EVENT_POSTCREATE, dp, DM_RIGHT_NULL, -				ip, DM_RIGHT_NULL, name->name, NULL, mode, -				error, 0); -	} - -	return error; +	return 0;   out_bmap_cancel:  	xfs_bmap_cancel(&free_list); @@ -1510,8 +1470,8 @@ xfs_create(  	if (unlock_dp_on_error)  		xfs_iunlock(dp, XFS_ILOCK_EXCL); - -	goto std_return; + std_return: +	return error;   out_abort_rele:  	/* @@ -1732,14 +1692,6 @@ xfs_remove(  	if (XFS_FORCED_SHUTDOWN(mp))  		return XFS_ERROR(EIO); -	if (DM_EVENT_ENABLED(dp, DM_EVENT_REMOVE)) { -		error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE, dp, DM_RIGHT_NULL, -					NULL, DM_RIGHT_NULL, name->name, NULL, -					ip->i_d.di_mode, 0, 0); -		if (error) -			return error; -	} -  	error = xfs_qm_dqattach(dp, 0);  	if (error)  		goto std_return; @@ -1877,21 +1829,15 @@ xfs_remove(  	if (!is_dir && link_zero && xfs_inode_is_filestream(ip))  		xfs_filestream_deassociate(ip); - std_return: -	if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTREMOVE)) { -		XFS_SEND_NAMESP(mp, DM_EVENT_POSTREMOVE, dp, DM_RIGHT_NULL, -				NULL, DM_RIGHT_NULL, name->name, NULL, -				ip->i_d.di_mode, error, 0); -	} - -	return error; +	return 0;   out_bmap_cancel:  	xfs_bmap_cancel(&free_list);  	cancel_flags |= XFS_TRANS_ABORT;   out_trans_cancel:  	xfs_trans_cancel(tp, cancel_flags); -	goto std_return; + std_return: +	return error;  }  int @@ -1917,17 +1863,6 @@ xfs_link(  	if (XFS_FORCED_SHUTDOWN(mp))  		return XFS_ERROR(EIO); -	if (DM_EVENT_ENABLED(tdp, DM_EVENT_LINK)) { -		error = XFS_SEND_NAMESP(mp, DM_EVENT_LINK, -					tdp, DM_RIGHT_NULL, -					sip, DM_RIGHT_NULL, -					target_name->name, NULL, 0, 0, 0); -		if (error) -			return error; -	} - -	/* Return through std_return after this point. */ -  	error = xfs_qm_dqattach(sip, 0);  	if (error)  		goto std_return; @@ -2014,27 +1949,14 @@ xfs_link(  		goto abort_return;  	} -	error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES); -	if (error) -		goto std_return; - -	/* Fall through to std_return with error = 0. */ -std_return: -	if (DM_EVENT_ENABLED(sip, DM_EVENT_POSTLINK)) { -		(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTLINK, -				tdp, DM_RIGHT_NULL, -				sip, DM_RIGHT_NULL, -				target_name->name, NULL, 0, error, 0); -	} -	return error; +	return xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES);   abort_return:  	cancel_flags |= XFS_TRANS_ABORT; -	/* FALLTHROUGH */ -   error_return:  	xfs_trans_cancel(tp, cancel_flags); -	goto std_return; + std_return: +	return error;  }  int @@ -2086,17 +2008,6 @@ xfs_symlink(  	if (pathlen >= MAXPATHLEN)      /* total string too long */  		return XFS_ERROR(ENAMETOOLONG); -	if (DM_EVENT_ENABLED(dp, DM_EVENT_SYMLINK)) { -		error = XFS_SEND_NAMESP(mp, DM_EVENT_SYMLINK, dp, -					DM_RIGHT_NULL, NULL, DM_RIGHT_NULL, -					link_name->name, -					(unsigned char *)target_path, 0, 0, 0); -		if (error) -			return error; -	} - -	/* Return through std_return after this point. */ -  	udqp = gdqp = NULL;  	if (dp->i_d.di_flags & XFS_DIFLAG_PROJINHERIT)  		prid = dp->i_d.di_projid; @@ -2278,21 +2189,8 @@ xfs_symlink(  	xfs_qm_dqrele(udqp);  	xfs_qm_dqrele(gdqp); -	/* Fall through to std_return with error = 0 or errno from -	 * xfs_trans_commit	*/ -std_return: -	if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTSYMLINK)) { -		(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTSYMLINK, -					dp, DM_RIGHT_NULL, -					error ? NULL : ip, -					DM_RIGHT_NULL, link_name->name, -					(unsigned char *)target_path, -					0, error, 0); -	} - -	if (!error) -		*ipp = ip; -	return error; +	*ipp = ip; +	return 0;   error2:  	IRELE(ip); @@ -2306,8 +2204,8 @@ std_return:  	if (unlock_dp_on_error)  		xfs_iunlock(dp, XFS_ILOCK_EXCL); - -	goto std_return; + std_return: +	return error;  }  int @@ -2412,25 +2310,9 @@ xfs_alloc_file_space(  	startoffset_fsb	= XFS_B_TO_FSBT(mp, offset);  	allocatesize_fsb = XFS_B_TO_FSB(mp, count); -	/*	Generate a DMAPI event if needed.	*/ -	if (alloc_type != 0 && offset < ip->i_size && -			(attr_flags & XFS_ATTR_DMI) == 0  && -			DM_EVENT_ENABLED(ip, DM_EVENT_WRITE)) { -		xfs_off_t           end_dmi_offset; - -		end_dmi_offset = offset+len; -		if (end_dmi_offset > ip->i_size) -			end_dmi_offset = ip->i_size; -		error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, ip, offset, -				      end_dmi_offset - offset, 0, NULL); -		if (error) -			return error; -	} -  	/*  	 * Allocate file space until done or until there is an error  	 */ -retry:  	while (allocatesize_fsb && !error) {  		xfs_fileoff_t	s, e; @@ -2527,17 +2409,6 @@ retry:  		startoffset_fsb += allocated_fsb;  		allocatesize_fsb -= allocated_fsb;  	} -dmapi_enospc_check: -	if (error == ENOSPC && (attr_flags & XFS_ATTR_DMI) == 0 && -	    DM_EVENT_ENABLED(ip, DM_EVENT_NOSPACE)) { -		error = XFS_SEND_NAMESP(mp, DM_EVENT_NOSPACE, -				ip, DM_RIGHT_NULL, -				ip, DM_RIGHT_NULL, -				NULL, NULL, 0, 0, 0); /* Delay flag intentionally unused */ -		if (error == 0) -			goto retry;	/* Maybe DMAPI app. has made space */ -		/* else fall through with error from XFS_SEND_DATA */ -	}  	return error; @@ -2548,7 +2419,7 @@ error0:	/* Cancel bmap, unlock inode, unreserve quota blocks, cancel trans */  error1:	/* Just cancel transaction */  	xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT);  	xfs_iunlock(ip, XFS_ILOCK_EXCL); -	goto dmapi_enospc_check; +	return error;  }  /* @@ -2661,7 +2532,6 @@ xfs_free_file_space(  {  	int			committed;  	int			done; -	xfs_off_t		end_dmi_offset;  	xfs_fileoff_t		endoffset_fsb;  	int			error;  	xfs_fsblock_t		firstfsb; @@ -2691,19 +2561,7 @@ xfs_free_file_space(  		return error;  	rt = XFS_IS_REALTIME_INODE(ip);  	startoffset_fsb	= XFS_B_TO_FSB(mp, offset); -	end_dmi_offset = offset + len; -	endoffset_fsb = XFS_B_TO_FSBT(mp, end_dmi_offset); - -	if (offset < ip->i_size && (attr_flags & XFS_ATTR_DMI) == 0 && -	    DM_EVENT_ENABLED(ip, DM_EVENT_WRITE)) { -		if (end_dmi_offset > ip->i_size) -			end_dmi_offset = ip->i_size; -		error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, ip, -				offset, end_dmi_offset - offset, -				AT_DELAY_FLAG(attr_flags), NULL); -		if (error) -			return error; -	} +	endoffset_fsb = XFS_B_TO_FSBT(mp, offset + len);  	if (attr_flags & XFS_ATTR_NOLOCK)  		need_iolock = 0;  |