mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-04 05:11:46 +00:00
[XFS] cleanup vnode use in dmapi calls
SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30545a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
This commit is contained in:
parent
d234154125
commit
bc4ac74a4e
7 changed files with 54 additions and 64 deletions
|
@ -469,16 +469,11 @@ xfs_file_open_exec(
|
||||||
struct inode *inode)
|
struct inode *inode)
|
||||||
{
|
{
|
||||||
struct xfs_mount *mp = XFS_M(inode->i_sb);
|
struct xfs_mount *mp = XFS_M(inode->i_sb);
|
||||||
|
struct xfs_inode *ip = XFS_I(inode);
|
||||||
|
|
||||||
if (unlikely(mp->m_flags & XFS_MOUNT_DMAPI)) {
|
if (unlikely(mp->m_flags & XFS_MOUNT_DMAPI) &&
|
||||||
if (DM_EVENT_ENABLED(XFS_I(inode), DM_EVENT_READ)) {
|
DM_EVENT_ENABLED(ip, DM_EVENT_READ))
|
||||||
bhv_vnode_t *vp = vn_from_inode(inode);
|
return -XFS_SEND_DATA(mp, DM_EVENT_READ, ip, 0, 0, 0, NULL);
|
||||||
|
|
||||||
return -XFS_SEND_DATA(mp, DM_EVENT_READ,
|
|
||||||
vp, 0, 0, 0, NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* HAVE_FOP_OPEN_EXEC */
|
#endif /* HAVE_FOP_OPEN_EXEC */
|
||||||
|
|
|
@ -231,7 +231,7 @@ xfs_read(
|
||||||
int dmflags = FILP_DELAY_FLAG(file) | DM_SEM_FLAG_RD(ioflags);
|
int dmflags = FILP_DELAY_FLAG(file) | DM_SEM_FLAG_RD(ioflags);
|
||||||
int iolock = XFS_IOLOCK_SHARED;
|
int iolock = XFS_IOLOCK_SHARED;
|
||||||
|
|
||||||
ret = -XFS_SEND_DATA(mp, DM_EVENT_READ, vp, *offset, size,
|
ret = -XFS_SEND_DATA(mp, DM_EVENT_READ, ip, *offset, size,
|
||||||
dmflags, &iolock);
|
dmflags, &iolock);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
xfs_iunlock(ip, XFS_IOLOCK_SHARED);
|
xfs_iunlock(ip, XFS_IOLOCK_SHARED);
|
||||||
|
@ -276,7 +276,6 @@ xfs_splice_read(
|
||||||
int flags,
|
int flags,
|
||||||
int ioflags)
|
int ioflags)
|
||||||
{
|
{
|
||||||
bhv_vnode_t *vp = XFS_ITOV(ip);
|
|
||||||
xfs_mount_t *mp = ip->i_mount;
|
xfs_mount_t *mp = ip->i_mount;
|
||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
|
|
||||||
|
@ -290,7 +289,7 @@ xfs_splice_read(
|
||||||
int iolock = XFS_IOLOCK_SHARED;
|
int iolock = XFS_IOLOCK_SHARED;
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
error = XFS_SEND_DATA(mp, DM_EVENT_READ, vp, *ppos, count,
|
error = XFS_SEND_DATA(mp, DM_EVENT_READ, ip, *ppos, count,
|
||||||
FILP_DELAY_FLAG(infilp), &iolock);
|
FILP_DELAY_FLAG(infilp), &iolock);
|
||||||
if (error) {
|
if (error) {
|
||||||
xfs_iunlock(ip, XFS_IOLOCK_SHARED);
|
xfs_iunlock(ip, XFS_IOLOCK_SHARED);
|
||||||
|
@ -317,7 +316,6 @@ xfs_splice_write(
|
||||||
int flags,
|
int flags,
|
||||||
int ioflags)
|
int ioflags)
|
||||||
{
|
{
|
||||||
bhv_vnode_t *vp = XFS_ITOV(ip);
|
|
||||||
xfs_mount_t *mp = ip->i_mount;
|
xfs_mount_t *mp = ip->i_mount;
|
||||||
ssize_t ret;
|
ssize_t ret;
|
||||||
struct inode *inode = outfilp->f_mapping->host;
|
struct inode *inode = outfilp->f_mapping->host;
|
||||||
|
@ -333,7 +331,7 @@ xfs_splice_write(
|
||||||
int iolock = XFS_IOLOCK_EXCL;
|
int iolock = XFS_IOLOCK_EXCL;
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, vp, *ppos, count,
|
error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, ip, *ppos, count,
|
||||||
FILP_DELAY_FLAG(outfilp), &iolock);
|
FILP_DELAY_FLAG(outfilp), &iolock);
|
||||||
if (error) {
|
if (error) {
|
||||||
xfs_iunlock(ip, XFS_IOLOCK_EXCL);
|
xfs_iunlock(ip, XFS_IOLOCK_EXCL);
|
||||||
|
@ -631,7 +629,7 @@ start:
|
||||||
dmflags |= DM_FLAGS_IMUX;
|
dmflags |= DM_FLAGS_IMUX;
|
||||||
|
|
||||||
xfs_iunlock(xip, XFS_ILOCK_EXCL);
|
xfs_iunlock(xip, XFS_ILOCK_EXCL);
|
||||||
error = XFS_SEND_DATA(xip->i_mount, DM_EVENT_WRITE, vp,
|
error = XFS_SEND_DATA(xip->i_mount, DM_EVENT_WRITE, xip,
|
||||||
pos, count, dmflags, &iolock);
|
pos, count, dmflags, &iolock);
|
||||||
if (error) {
|
if (error) {
|
||||||
goto out_unlock_internal;
|
goto out_unlock_internal;
|
||||||
|
@ -778,8 +776,8 @@ retry:
|
||||||
xfs_iunlock(xip, iolock);
|
xfs_iunlock(xip, iolock);
|
||||||
if (need_i_mutex)
|
if (need_i_mutex)
|
||||||
mutex_unlock(&inode->i_mutex);
|
mutex_unlock(&inode->i_mutex);
|
||||||
error = XFS_SEND_NAMESP(xip->i_mount, DM_EVENT_NOSPACE, vp,
|
error = XFS_SEND_NAMESP(xip->i_mount, DM_EVENT_NOSPACE, xip,
|
||||||
DM_RIGHT_NULL, vp, DM_RIGHT_NULL, NULL, NULL,
|
DM_RIGHT_NULL, xip, DM_RIGHT_NULL, NULL, NULL,
|
||||||
0, 0, 0); /* Delay flag intentionally unused */
|
0, 0, 0); /* Delay flag intentionally unused */
|
||||||
if (need_i_mutex)
|
if (need_i_mutex)
|
||||||
mutex_lock(&inode->i_mutex);
|
mutex_lock(&inode->i_mutex);
|
||||||
|
|
|
@ -5811,7 +5811,7 @@ xfs_getbmap(
|
||||||
if ((interface & BMV_IF_NO_DMAPI_READ) == 0 &&
|
if ((interface & BMV_IF_NO_DMAPI_READ) == 0 &&
|
||||||
DM_EVENT_ENABLED(ip, DM_EVENT_READ) &&
|
DM_EVENT_ENABLED(ip, DM_EVENT_READ) &&
|
||||||
whichfork == XFS_DATA_FORK) {
|
whichfork == XFS_DATA_FORK) {
|
||||||
error = XFS_SEND_DATA(mp, DM_EVENT_READ, vp, 0, 0, 0, NULL);
|
error = XFS_SEND_DATA(mp, DM_EVENT_READ, ip, 0, 0, 0, NULL);
|
||||||
if (error)
|
if (error)
|
||||||
return XFS_ERROR(error);
|
return XFS_ERROR(error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,17 +66,17 @@ struct xfs_mru_cache;
|
||||||
* Prototypes and functions for the Data Migration subsystem.
|
* Prototypes and functions for the Data Migration subsystem.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef int (*xfs_send_data_t)(int, bhv_vnode_t *,
|
typedef int (*xfs_send_data_t)(int, struct xfs_inode *,
|
||||||
xfs_off_t, size_t, int, int *);
|
xfs_off_t, size_t, int, int *);
|
||||||
typedef int (*xfs_send_mmap_t)(struct vm_area_struct *, uint);
|
typedef int (*xfs_send_mmap_t)(struct vm_area_struct *, uint);
|
||||||
typedef int (*xfs_send_destroy_t)(bhv_vnode_t *, dm_right_t);
|
typedef int (*xfs_send_destroy_t)(struct xfs_inode *, dm_right_t);
|
||||||
typedef int (*xfs_send_namesp_t)(dm_eventtype_t, struct xfs_mount *,
|
typedef int (*xfs_send_namesp_t)(dm_eventtype_t, struct xfs_mount *,
|
||||||
bhv_vnode_t *,
|
struct xfs_inode *, dm_right_t,
|
||||||
dm_right_t, bhv_vnode_t *, dm_right_t,
|
struct xfs_inode *, dm_right_t,
|
||||||
char *, char *, mode_t, int, int);
|
char *, char *, mode_t, int, int);
|
||||||
typedef int (*xfs_send_mount_t)(struct xfs_mount *, dm_right_t,
|
typedef int (*xfs_send_mount_t)(struct xfs_mount *, dm_right_t,
|
||||||
char *, char *);
|
char *, char *);
|
||||||
typedef void (*xfs_send_unmount_t)(struct xfs_mount *, bhv_vnode_t *,
|
typedef void (*xfs_send_unmount_t)(struct xfs_mount *, struct xfs_inode *,
|
||||||
dm_right_t, mode_t, int, int);
|
dm_right_t, mode_t, int, int);
|
||||||
|
|
||||||
typedef struct xfs_dmops {
|
typedef struct xfs_dmops {
|
||||||
|
@ -88,20 +88,20 @@ typedef struct xfs_dmops {
|
||||||
xfs_send_unmount_t xfs_send_unmount;
|
xfs_send_unmount_t xfs_send_unmount;
|
||||||
} xfs_dmops_t;
|
} xfs_dmops_t;
|
||||||
|
|
||||||
#define XFS_SEND_DATA(mp, ev,vp,off,len,fl,lock) \
|
#define XFS_SEND_DATA(mp, ev,ip,off,len,fl,lock) \
|
||||||
(*(mp)->m_dm_ops->xfs_send_data)(ev,vp,off,len,fl,lock)
|
(*(mp)->m_dm_ops->xfs_send_data)(ev,ip,off,len,fl,lock)
|
||||||
#define XFS_SEND_MMAP(mp, vma,fl) \
|
#define XFS_SEND_MMAP(mp, vma,fl) \
|
||||||
(*(mp)->m_dm_ops->xfs_send_mmap)(vma,fl)
|
(*(mp)->m_dm_ops->xfs_send_mmap)(vma,fl)
|
||||||
#define XFS_SEND_DESTROY(mp, vp,right) \
|
#define XFS_SEND_DESTROY(mp, ip,right) \
|
||||||
(*(mp)->m_dm_ops->xfs_send_destroy)(vp,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) \
|
#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)
|
(*(mp)->m_dm_ops->xfs_send_namesp)(ev,NULL,b1,r1,b2,r2,n1,n2,mode,rval,fl)
|
||||||
#define XFS_SEND_PREUNMOUNT(mp,b1,r1,b2,r2,n1,n2,mode,rval,fl) \
|
#define XFS_SEND_PREUNMOUNT(mp,b1,r1,b2,r2,n1,n2,mode,rval,fl) \
|
||||||
(*(mp)->m_dm_ops->xfs_send_namesp)(DM_EVENT_PREUNMOUNT,mp,b1,r1,b2,r2,n1,n2,mode,rval,fl)
|
(*(mp)->m_dm_ops->xfs_send_namesp)(DM_EVENT_PREUNMOUNT,mp,b1,r1,b2,r2,n1,n2,mode,rval,fl)
|
||||||
#define XFS_SEND_MOUNT(mp,right,path,name) \
|
#define XFS_SEND_MOUNT(mp,right,path,name) \
|
||||||
(*(mp)->m_dm_ops->xfs_send_mount)(mp,right,path,name)
|
(*(mp)->m_dm_ops->xfs_send_mount)(mp,right,path,name)
|
||||||
#define XFS_SEND_UNMOUNT(mp, vp,right,mode,rval,fl) \
|
#define XFS_SEND_UNMOUNT(mp, ip,right,mode,rval,fl) \
|
||||||
(*(mp)->m_dm_ops->xfs_send_unmount)(mp,vp,right,mode,rval,fl)
|
(*(mp)->m_dm_ops->xfs_send_unmount)(mp,ip,right,mode,rval,fl)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -258,8 +258,8 @@ xfs_rename(
|
||||||
if (DM_EVENT_ENABLED(src_dp, DM_EVENT_RENAME) ||
|
if (DM_EVENT_ENABLED(src_dp, DM_EVENT_RENAME) ||
|
||||||
DM_EVENT_ENABLED(target_dp, DM_EVENT_RENAME)) {
|
DM_EVENT_ENABLED(target_dp, DM_EVENT_RENAME)) {
|
||||||
error = XFS_SEND_NAMESP(mp, DM_EVENT_RENAME,
|
error = XFS_SEND_NAMESP(mp, DM_EVENT_RENAME,
|
||||||
src_dir_vp, DM_RIGHT_NULL,
|
src_dp, DM_RIGHT_NULL,
|
||||||
target_dir_vp, DM_RIGHT_NULL,
|
target_dp, DM_RIGHT_NULL,
|
||||||
src_name, target_name,
|
src_name, target_name,
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (error) {
|
if (error) {
|
||||||
|
@ -591,8 +591,8 @@ std_return:
|
||||||
if (DM_EVENT_ENABLED(src_dp, DM_EVENT_POSTRENAME) ||
|
if (DM_EVENT_ENABLED(src_dp, DM_EVENT_POSTRENAME) ||
|
||||||
DM_EVENT_ENABLED(target_dp, DM_EVENT_POSTRENAME)) {
|
DM_EVENT_ENABLED(target_dp, DM_EVENT_POSTRENAME)) {
|
||||||
(void) XFS_SEND_NAMESP (mp, DM_EVENT_POSTRENAME,
|
(void) XFS_SEND_NAMESP (mp, DM_EVENT_POSTRENAME,
|
||||||
src_dir_vp, DM_RIGHT_NULL,
|
src_dp, DM_RIGHT_NULL,
|
||||||
target_dir_vp, DM_RIGHT_NULL,
|
target_dp, DM_RIGHT_NULL,
|
||||||
src_name, target_name,
|
src_name, target_name,
|
||||||
0, error, 0);
|
0, error, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -566,7 +566,7 @@ xfs_unmount(
|
||||||
#ifdef HAVE_DMAPI
|
#ifdef HAVE_DMAPI
|
||||||
if (mp->m_flags & XFS_MOUNT_DMAPI) {
|
if (mp->m_flags & XFS_MOUNT_DMAPI) {
|
||||||
error = XFS_SEND_PREUNMOUNT(mp,
|
error = XFS_SEND_PREUNMOUNT(mp,
|
||||||
rvp, DM_RIGHT_NULL, rvp, DM_RIGHT_NULL,
|
rip, DM_RIGHT_NULL, rip, DM_RIGHT_NULL,
|
||||||
NULL, NULL, 0, 0,
|
NULL, NULL, 0, 0,
|
||||||
(mp->m_dmevmask & (1<<DM_EVENT_PREUNMOUNT))?
|
(mp->m_dmevmask & (1<<DM_EVENT_PREUNMOUNT))?
|
||||||
0:DM_FLAGS_UNWANTED);
|
0:DM_FLAGS_UNWANTED);
|
||||||
|
@ -617,7 +617,7 @@ out:
|
||||||
/* Note: mp structure must still exist for
|
/* Note: mp structure must still exist for
|
||||||
* XFS_SEND_UNMOUNT() call.
|
* XFS_SEND_UNMOUNT() call.
|
||||||
*/
|
*/
|
||||||
XFS_SEND_UNMOUNT(mp, error == 0 ? rvp : NULL,
|
XFS_SEND_UNMOUNT(mp, error == 0 ? rip : NULL,
|
||||||
DM_RIGHT_NULL, 0, error, unmount_event_flags);
|
DM_RIGHT_NULL, 0, error, unmount_event_flags);
|
||||||
}
|
}
|
||||||
if (xfs_unmountfs_needed) {
|
if (xfs_unmountfs_needed) {
|
||||||
|
|
|
@ -326,7 +326,7 @@ xfs_setattr(
|
||||||
if (DM_EVENT_ENABLED(ip, DM_EVENT_TRUNCATE) &&
|
if (DM_EVENT_ENABLED(ip, DM_EVENT_TRUNCATE) &&
|
||||||
!(flags & ATTR_DMI)) {
|
!(flags & ATTR_DMI)) {
|
||||||
int dmflags = AT_DELAY_FLAG(flags) | DM_SEM_FLAG_WR;
|
int dmflags = AT_DELAY_FLAG(flags) | DM_SEM_FLAG_WR;
|
||||||
code = XFS_SEND_DATA(mp, DM_EVENT_TRUNCATE, vp,
|
code = XFS_SEND_DATA(mp, DM_EVENT_TRUNCATE, ip,
|
||||||
vap->va_size, 0, dmflags, NULL);
|
vap->va_size, 0, dmflags, NULL);
|
||||||
if (code) {
|
if (code) {
|
||||||
lock_flags = 0;
|
lock_flags = 0;
|
||||||
|
@ -881,7 +881,7 @@ xfs_setattr(
|
||||||
|
|
||||||
if (DM_EVENT_ENABLED(ip, DM_EVENT_ATTRIBUTE) &&
|
if (DM_EVENT_ENABLED(ip, DM_EVENT_ATTRIBUTE) &&
|
||||||
!(flags & ATTR_DMI)) {
|
!(flags & ATTR_DMI)) {
|
||||||
(void) XFS_SEND_NAMESP(mp, DM_EVENT_ATTRIBUTE, vp, DM_RIGHT_NULL,
|
(void) XFS_SEND_NAMESP(mp, DM_EVENT_ATTRIBUTE, ip, DM_RIGHT_NULL,
|
||||||
NULL, DM_RIGHT_NULL, NULL, NULL,
|
NULL, DM_RIGHT_NULL, NULL, NULL,
|
||||||
0, 0, AT_DELAY_FLAG(flags));
|
0, 0, AT_DELAY_FLAG(flags));
|
||||||
}
|
}
|
||||||
|
@ -1586,9 +1586,8 @@ xfs_inactive(
|
||||||
|
|
||||||
mp = ip->i_mount;
|
mp = ip->i_mount;
|
||||||
|
|
||||||
if (ip->i_d.di_nlink == 0 && DM_EVENT_ENABLED(ip, DM_EVENT_DESTROY)) {
|
if (ip->i_d.di_nlink == 0 && DM_EVENT_ENABLED(ip, DM_EVENT_DESTROY))
|
||||||
(void) XFS_SEND_DESTROY(mp, vp, DM_RIGHT_NULL);
|
XFS_SEND_DESTROY(mp, ip, DM_RIGHT_NULL);
|
||||||
}
|
|
||||||
|
|
||||||
error = 0;
|
error = 0;
|
||||||
|
|
||||||
|
@ -1820,7 +1819,7 @@ xfs_create(
|
||||||
|
|
||||||
if (DM_EVENT_ENABLED(dp, DM_EVENT_CREATE)) {
|
if (DM_EVENT_ENABLED(dp, DM_EVENT_CREATE)) {
|
||||||
error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE,
|
error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE,
|
||||||
dir_vp, DM_RIGHT_NULL, NULL,
|
dp, DM_RIGHT_NULL, NULL,
|
||||||
DM_RIGHT_NULL, name, NULL,
|
DM_RIGHT_NULL, name, NULL,
|
||||||
mode, 0, 0);
|
mode, 0, 0);
|
||||||
|
|
||||||
|
@ -1976,8 +1975,8 @@ std_return:
|
||||||
if ((*vpp || (error != 0 && dm_event_sent != 0)) &&
|
if ((*vpp || (error != 0 && dm_event_sent != 0)) &&
|
||||||
DM_EVENT_ENABLED(dp, DM_EVENT_POSTCREATE)) {
|
DM_EVENT_ENABLED(dp, DM_EVENT_POSTCREATE)) {
|
||||||
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTCREATE,
|
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTCREATE,
|
||||||
dir_vp, DM_RIGHT_NULL,
|
dp, DM_RIGHT_NULL,
|
||||||
*vpp ? vp:NULL,
|
*vpp ? ip : NULL,
|
||||||
DM_RIGHT_NULL, name, NULL,
|
DM_RIGHT_NULL, name, NULL,
|
||||||
mode, error, 0);
|
mode, error, 0);
|
||||||
}
|
}
|
||||||
|
@ -2272,7 +2271,6 @@ xfs_remove(
|
||||||
xfs_inode_t *dp,
|
xfs_inode_t *dp,
|
||||||
bhv_vname_t *dentry)
|
bhv_vname_t *dentry)
|
||||||
{
|
{
|
||||||
bhv_vnode_t *dir_vp = XFS_ITOV(dp);
|
|
||||||
char *name = VNAME(dentry);
|
char *name = VNAME(dentry);
|
||||||
xfs_mount_t *mp = dp->i_mount;
|
xfs_mount_t *mp = dp->i_mount;
|
||||||
xfs_inode_t *ip = VNAME_TO_INODE(dentry);
|
xfs_inode_t *ip = VNAME_TO_INODE(dentry);
|
||||||
|
@ -2292,7 +2290,7 @@ xfs_remove(
|
||||||
return XFS_ERROR(EIO);
|
return XFS_ERROR(EIO);
|
||||||
|
|
||||||
if (DM_EVENT_ENABLED(dp, DM_EVENT_REMOVE)) {
|
if (DM_EVENT_ENABLED(dp, DM_EVENT_REMOVE)) {
|
||||||
error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE, dir_vp,
|
error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE, dp,
|
||||||
DM_RIGHT_NULL, NULL, DM_RIGHT_NULL,
|
DM_RIGHT_NULL, NULL, DM_RIGHT_NULL,
|
||||||
name, NULL, ip->i_d.di_mode, 0, 0);
|
name, NULL, ip->i_d.di_mode, 0, 0);
|
||||||
if (error)
|
if (error)
|
||||||
|
@ -2445,7 +2443,7 @@ xfs_remove(
|
||||||
std_return:
|
std_return:
|
||||||
if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTREMOVE)) {
|
if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTREMOVE)) {
|
||||||
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTREMOVE,
|
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTREMOVE,
|
||||||
dir_vp, DM_RIGHT_NULL,
|
dp, DM_RIGHT_NULL,
|
||||||
NULL, DM_RIGHT_NULL,
|
NULL, DM_RIGHT_NULL,
|
||||||
name, NULL, ip->i_d.di_mode, error, 0);
|
name, NULL, ip->i_d.di_mode, error, 0);
|
||||||
}
|
}
|
||||||
|
@ -2504,8 +2502,8 @@ xfs_link(
|
||||||
|
|
||||||
if (DM_EVENT_ENABLED(tdp, DM_EVENT_LINK)) {
|
if (DM_EVENT_ENABLED(tdp, DM_EVENT_LINK)) {
|
||||||
error = XFS_SEND_NAMESP(mp, DM_EVENT_LINK,
|
error = XFS_SEND_NAMESP(mp, DM_EVENT_LINK,
|
||||||
target_dir_vp, DM_RIGHT_NULL,
|
tdp, DM_RIGHT_NULL,
|
||||||
src_vp, DM_RIGHT_NULL,
|
sip, DM_RIGHT_NULL,
|
||||||
target_name, NULL, 0, 0, 0);
|
target_name, NULL, 0, 0, 0);
|
||||||
if (error)
|
if (error)
|
||||||
return error;
|
return error;
|
||||||
|
@ -2615,8 +2613,8 @@ xfs_link(
|
||||||
std_return:
|
std_return:
|
||||||
if (DM_EVENT_ENABLED(sip, DM_EVENT_POSTLINK)) {
|
if (DM_EVENT_ENABLED(sip, DM_EVENT_POSTLINK)) {
|
||||||
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTLINK,
|
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTLINK,
|
||||||
target_dir_vp, DM_RIGHT_NULL,
|
tdp, DM_RIGHT_NULL,
|
||||||
src_vp, DM_RIGHT_NULL,
|
sip, DM_RIGHT_NULL,
|
||||||
target_name, NULL, 0, error, 0);
|
target_name, NULL, 0, error, 0);
|
||||||
}
|
}
|
||||||
return error;
|
return error;
|
||||||
|
@ -2665,7 +2663,7 @@ xfs_mkdir(
|
||||||
|
|
||||||
if (DM_EVENT_ENABLED(dp, DM_EVENT_CREATE)) {
|
if (DM_EVENT_ENABLED(dp, DM_EVENT_CREATE)) {
|
||||||
error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE,
|
error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE,
|
||||||
dir_vp, DM_RIGHT_NULL, NULL,
|
dp, DM_RIGHT_NULL, NULL,
|
||||||
DM_RIGHT_NULL, dir_name, NULL,
|
DM_RIGHT_NULL, dir_name, NULL,
|
||||||
mode, 0, 0);
|
mode, 0, 0);
|
||||||
if (error)
|
if (error)
|
||||||
|
@ -2823,8 +2821,8 @@ std_return:
|
||||||
if ((created || (error != 0 && dm_event_sent != 0)) &&
|
if ((created || (error != 0 && dm_event_sent != 0)) &&
|
||||||
DM_EVENT_ENABLED(dp, DM_EVENT_POSTCREATE)) {
|
DM_EVENT_ENABLED(dp, DM_EVENT_POSTCREATE)) {
|
||||||
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTCREATE,
|
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTCREATE,
|
||||||
dir_vp, DM_RIGHT_NULL,
|
dp, DM_RIGHT_NULL,
|
||||||
created ? XFS_ITOV(cdp):NULL,
|
created ? cdp : NULL,
|
||||||
DM_RIGHT_NULL,
|
DM_RIGHT_NULL,
|
||||||
dir_name, NULL,
|
dir_name, NULL,
|
||||||
mode, error, 0);
|
mode, error, 0);
|
||||||
|
@ -2873,7 +2871,7 @@ xfs_rmdir(
|
||||||
|
|
||||||
if (DM_EVENT_ENABLED(dp, DM_EVENT_REMOVE)) {
|
if (DM_EVENT_ENABLED(dp, DM_EVENT_REMOVE)) {
|
||||||
error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE,
|
error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE,
|
||||||
dir_vp, DM_RIGHT_NULL,
|
dp, DM_RIGHT_NULL,
|
||||||
NULL, DM_RIGHT_NULL,
|
NULL, DM_RIGHT_NULL,
|
||||||
name, NULL, cdp->i_d.di_mode, 0, 0);
|
name, NULL, cdp->i_d.di_mode, 0, 0);
|
||||||
if (error)
|
if (error)
|
||||||
|
@ -3047,7 +3045,7 @@ xfs_rmdir(
|
||||||
std_return:
|
std_return:
|
||||||
if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTREMOVE)) {
|
if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTREMOVE)) {
|
||||||
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTREMOVE,
|
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTREMOVE,
|
||||||
dir_vp, DM_RIGHT_NULL,
|
dp, DM_RIGHT_NULL,
|
||||||
NULL, DM_RIGHT_NULL,
|
NULL, DM_RIGHT_NULL,
|
||||||
name, NULL, cdp->i_d.di_mode,
|
name, NULL, cdp->i_d.di_mode,
|
||||||
error, 0);
|
error, 0);
|
||||||
|
@ -3144,7 +3142,7 @@ xfs_symlink(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DM_EVENT_ENABLED(dp, DM_EVENT_SYMLINK)) {
|
if (DM_EVENT_ENABLED(dp, DM_EVENT_SYMLINK)) {
|
||||||
error = XFS_SEND_NAMESP(mp, DM_EVENT_SYMLINK, dir_vp,
|
error = XFS_SEND_NAMESP(mp, DM_EVENT_SYMLINK, dp,
|
||||||
DM_RIGHT_NULL, NULL, DM_RIGHT_NULL,
|
DM_RIGHT_NULL, NULL, DM_RIGHT_NULL,
|
||||||
link_name, target_path, 0, 0, 0);
|
link_name, target_path, 0, 0, 0);
|
||||||
if (error)
|
if (error)
|
||||||
|
@ -3348,8 +3346,8 @@ xfs_symlink(
|
||||||
std_return:
|
std_return:
|
||||||
if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTSYMLINK)) {
|
if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTSYMLINK)) {
|
||||||
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTSYMLINK,
|
(void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTSYMLINK,
|
||||||
dir_vp, DM_RIGHT_NULL,
|
dp, DM_RIGHT_NULL,
|
||||||
error ? NULL : XFS_ITOV(ip),
|
error ? NULL : ip,
|
||||||
DM_RIGHT_NULL, link_name, target_path,
|
DM_RIGHT_NULL, link_name, target_path,
|
||||||
0, error, 0);
|
0, error, 0);
|
||||||
}
|
}
|
||||||
|
@ -3707,9 +3705,8 @@ xfs_alloc_file_space(
|
||||||
end_dmi_offset = offset+len;
|
end_dmi_offset = offset+len;
|
||||||
if (end_dmi_offset > ip->i_size)
|
if (end_dmi_offset > ip->i_size)
|
||||||
end_dmi_offset = ip->i_size;
|
end_dmi_offset = ip->i_size;
|
||||||
error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, XFS_ITOV(ip),
|
error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, ip, offset,
|
||||||
offset, end_dmi_offset - offset,
|
end_dmi_offset - offset, 0, NULL);
|
||||||
0, NULL);
|
|
||||||
if (error)
|
if (error)
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
@ -3818,8 +3815,8 @@ dmapi_enospc_check:
|
||||||
if (error == ENOSPC && (attr_flags & ATTR_DMI) == 0 &&
|
if (error == ENOSPC && (attr_flags & ATTR_DMI) == 0 &&
|
||||||
DM_EVENT_ENABLED(ip, DM_EVENT_NOSPACE)) {
|
DM_EVENT_ENABLED(ip, DM_EVENT_NOSPACE)) {
|
||||||
error = XFS_SEND_NAMESP(mp, DM_EVENT_NOSPACE,
|
error = XFS_SEND_NAMESP(mp, DM_EVENT_NOSPACE,
|
||||||
XFS_ITOV(ip), DM_RIGHT_NULL,
|
ip, DM_RIGHT_NULL,
|
||||||
XFS_ITOV(ip), DM_RIGHT_NULL,
|
ip, DM_RIGHT_NULL,
|
||||||
NULL, NULL, 0, 0, 0); /* Delay flag intentionally unused */
|
NULL, NULL, 0, 0, 0); /* Delay flag intentionally unused */
|
||||||
if (error == 0)
|
if (error == 0)
|
||||||
goto retry; /* Maybe DMAPI app. has made space */
|
goto retry; /* Maybe DMAPI app. has made space */
|
||||||
|
@ -3964,7 +3961,7 @@ xfs_free_file_space(
|
||||||
DM_EVENT_ENABLED(ip, DM_EVENT_WRITE)) {
|
DM_EVENT_ENABLED(ip, DM_EVENT_WRITE)) {
|
||||||
if (end_dmi_offset > ip->i_size)
|
if (end_dmi_offset > ip->i_size)
|
||||||
end_dmi_offset = ip->i_size;
|
end_dmi_offset = ip->i_size;
|
||||||
error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, vp,
|
error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, ip,
|
||||||
offset, end_dmi_offset - offset,
|
offset, end_dmi_offset - offset,
|
||||||
AT_DELAY_FLAG(attr_flags), NULL);
|
AT_DELAY_FLAG(attr_flags), NULL);
|
||||||
if (error)
|
if (error)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue