mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 16:41:58 +00:00
[XFS] pass file mode on DMAPI remove events
SGI-PV: 953687 SGI-Modid: xfs-linux-melb:xfs-kern:26639a Signed-off-by: Vlad Apostolov <vapo@sgi.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
This commit is contained in:
parent
745b1f47fc
commit
17370097da
@ -2366,10 +2366,15 @@ xfs_remove(
|
||||
|
||||
namelen = VNAMELEN(dentry);
|
||||
|
||||
if (!xfs_get_dir_entry(dentry, &ip)) {
|
||||
dm_di_mode = ip->i_d.di_mode;
|
||||
IRELE(ip);
|
||||
}
|
||||
|
||||
if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_REMOVE)) {
|
||||
error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE, dir_vp,
|
||||
DM_RIGHT_NULL, NULL, DM_RIGHT_NULL,
|
||||
name, NULL, 0, 0, 0);
|
||||
name, NULL, dm_di_mode, 0, 0);
|
||||
if (error)
|
||||
return error;
|
||||
}
|
||||
@ -2995,7 +3000,7 @@ xfs_rmdir(
|
||||
int cancel_flags;
|
||||
int committed;
|
||||
bhv_vnode_t *dir_vp;
|
||||
int dm_di_mode = 0;
|
||||
int dm_di_mode = S_IFDIR;
|
||||
int last_cdp_link;
|
||||
int namelen;
|
||||
uint resblks;
|
||||
@ -3010,11 +3015,16 @@ xfs_rmdir(
|
||||
return XFS_ERROR(EIO);
|
||||
namelen = VNAMELEN(dentry);
|
||||
|
||||
if (!xfs_get_dir_entry(dentry, &cdp)) {
|
||||
dm_di_mode = cdp->i_d.di_mode;
|
||||
IRELE(cdp);
|
||||
}
|
||||
|
||||
if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_REMOVE)) {
|
||||
error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE,
|
||||
dir_vp, DM_RIGHT_NULL,
|
||||
NULL, DM_RIGHT_NULL,
|
||||
name, NULL, 0, 0, 0);
|
||||
name, NULL, dm_di_mode, 0, 0);
|
||||
if (error)
|
||||
return XFS_ERROR(error);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user