From: Vlad Apostolov <vapo@sgi.com>
To: Christoph Hellwig <hch@lst.de>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH] remove unessecary vfs argument to DM_EVENT_ENABLED
Date: Fri, 03 Aug 2007 12:21:14 +1000 [thread overview]
Message-ID: <46B2911A.60308@sgi.com> (raw)
In-Reply-To: <20070802143417.GA30414@lst.de>
It is looking good Christoph. I built it and ran DMAPI QA and all went fine.
Dave is also looking at it and would provide a feedback.
Regards,
Vlad
Christoph Hellwig wrote:
> We can easily derive the vfs from the inode passed in. Also kill
> the unused DM_EVENT_ENABLED_IO macro.
>
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
>
> Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c
> ===================================================================
> --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2007-08-01 19:53:27.000000000 +0200
> +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2007-08-01 19:53:42.000000000 +0200
> @@ -3271,8 +3271,7 @@ xfs_dm_send_mmap_event(
>
> xfs_ilock(ip, iolock);
> /* If write possible, try a DMAPI write event */
> - if ((max_event == DM_EVENT_WRITE) &&
> - DM_EVENT_ENABLED(vp->v_vfsp, ip, max_event)){
> + if (max_event == DM_EVENT_WRITE && DM_EVENT_ENABLED(ip, max_event)) {
> error = xfs_dm_send_data_event(max_event, vp, offset,
> evsize, 0, &locktype);
> goto out_unlock;
> @@ -3281,7 +3280,7 @@ xfs_dm_send_mmap_event(
> /* Try a read event if max_event was != DM_EVENT_WRITE or if it
> * was DM_EVENT_WRITE but the WRITE event was not enabled.
> */
> - if (DM_EVENT_ENABLED (vp->v_vfsp, ip, DM_EVENT_READ)) {
> + if (DM_EVENT_ENABLED(ip, DM_EVENT_READ)) {
> error = xfs_dm_send_data_event(DM_EVENT_READ, vp, offset,
> evsize, 0, &locktype);
> }
> Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_file.c
> ===================================================================
> --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_file.c 2007-08-01 19:53:22.000000000 +0200
> +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_file.c 2007-08-01 19:53:42.000000000 +0200
> @@ -384,7 +384,7 @@ xfs_file_open_exec(
>
> if (!ip)
> return -EINVAL;
> - if (DM_EVENT_ENABLED(vp->v_vfsp, ip, DM_EVENT_READ))
> + if (DM_EVENT_ENABLED(ip, DM_EVENT_READ))
> return -XFS_SEND_DATA(mp, DM_EVENT_READ, vp,
> 0, 0, 0, NULL);
> }
> Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_lrw.c
> ===================================================================
> --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_lrw.c 2007-08-01 19:53:27.000000000 +0200
> +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_lrw.c 2007-08-01 19:56:14.000000000 +0200
> @@ -245,8 +245,7 @@ xfs_read(
> mutex_lock(&inode->i_mutex);
> xfs_ilock(ip, XFS_IOLOCK_SHARED);
>
> - if (DM_EVENT_ENABLED(vp->v_vfsp, ip, DM_EVENT_READ) &&
> - !(ioflags & IO_INVIS)) {
> + if (DM_EVENT_ENABLED(ip, DM_EVENT_READ) && !(ioflags & IO_INVIS)) {
> bhv_vrwlock_t locktype = VRWLOCK_READ;
> int dmflags = FILP_DELAY_FLAG(file) | DM_SEM_FLAG_RD(ioflags);
>
> @@ -307,8 +306,7 @@ xfs_sendfile(
>
> xfs_ilock(ip, XFS_IOLOCK_SHARED);
>
> - if (DM_EVENT_ENABLED(BHV_TO_VNODE(bdp)->v_vfsp, ip, DM_EVENT_READ) &&
> - (!(ioflags & IO_INVIS))) {
> + if (DM_EVENT_ENABLED(ip, DM_EVENT_READ) && !(ioflags & IO_INVIS)) {
> bhv_vrwlock_t locktype = VRWLOCK_READ;
> int error;
>
> @@ -351,8 +349,7 @@ xfs_splice_read(
>
> xfs_ilock(ip, XFS_IOLOCK_SHARED);
>
> - if (DM_EVENT_ENABLED(BHV_TO_VNODE(bdp)->v_vfsp, ip, DM_EVENT_READ) &&
> - (!(ioflags & IO_INVIS))) {
> + if (DM_EVENT_ENABLED(ip, DM_EVENT_READ) && !(ioflags & IO_INVIS)) {
> bhv_vrwlock_t locktype = VRWLOCK_READ;
> int error;
>
> @@ -398,8 +395,7 @@ xfs_splice_write(
>
> xfs_ilock(ip, XFS_IOLOCK_EXCL);
>
> - if (DM_EVENT_ENABLED(BHV_TO_VNODE(bdp)->v_vfsp, ip, DM_EVENT_WRITE) &&
> - (!(ioflags & IO_INVIS))) {
> + if (DM_EVENT_ENABLED(ip, DM_EVENT_WRITE) && !(ioflags & IO_INVIS)) {
> bhv_vrwlock_t locktype = VRWLOCK_WRITE;
> int error;
>
> @@ -724,7 +720,7 @@ start:
> goto out_unlock_mutex;
> }
>
> - if ((DM_EVENT_ENABLED(vp->v_vfsp, xip, DM_EVENT_WRITE) &&
> + if ((DM_EVENT_ENABLED(xip, DM_EVENT_WRITE) &&
> !(ioflags & IO_INVIS) && !eventsent)) {
> int dmflags = FILP_DELAY_FLAG(file);
>
> @@ -876,10 +872,8 @@ retry:
> if (ret == -EIOCBQUEUED && !(ioflags & IO_ISAIO))
> ret = wait_on_sync_kiocb(iocb);
>
> - if ((ret == -ENOSPC) &&
> - DM_EVENT_ENABLED(vp->v_vfsp, xip, DM_EVENT_NOSPACE) &&
> - !(ioflags & IO_INVIS)) {
> -
> + if (ret == -ENOSPC &&
> + DM_EVENT_ENABLED(xip, DM_EVENT_NOSPACE) && !(ioflags & IO_INVIS)) {
> xfs_rwunlock(bdp, locktype);
> if (need_i_mutex)
> mutex_unlock(&inode->i_mutex);
> Index: linux-2.6-xfs/fs/xfs/xfs_bmap.c
> ===================================================================
> --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap.c 2007-08-01 19:53:27.000000000 +0200
> +++ linux-2.6-xfs/fs/xfs/xfs_bmap.c 2007-08-01 19:53:42.000000000 +0200
> @@ -5811,10 +5811,9 @@ xfs_getbmap(
> * could misinterpret holes in a DMAPI file as true holes,
> * when in fact they may represent offline user data.
> */
> - if ( (interface & BMV_IF_NO_DMAPI_READ) == 0
> - && DM_EVENT_ENABLED(vp->v_vfsp, ip, DM_EVENT_READ)
> - && whichfork == XFS_DATA_FORK) {
> -
> + if ((interface & BMV_IF_NO_DMAPI_READ) == 0 &&
> + DM_EVENT_ENABLED(ip, DM_EVENT_READ) &&
> + whichfork == XFS_DATA_FORK) {
> error = XFS_SEND_DATA(mp, DM_EVENT_READ, vp, 0, 0, 0, NULL);
> if (error)
> return XFS_ERROR(error);
> Index: linux-2.6-xfs/fs/xfs/xfs_dmapi.h
> ===================================================================
> --- linux-2.6-xfs.orig/fs/xfs/xfs_dmapi.h 2007-08-01 19:53:16.000000000 +0200
> +++ linux-2.6-xfs/fs/xfs/xfs_dmapi.h 2007-08-01 19:53:42.000000000 +0200
> @@ -67,18 +67,12 @@ typedef enum {
> #define HAVE_DM_RIGHT_T
>
> /* Defines for determining if an event message should be sent. */
> -#define DM_EVENT_ENABLED(vfsp, ip, event) ( \
> - unlikely ((vfsp)->vfs_flag & VFS_DMI) && \
> +#define DM_EVENT_ENABLED(ip, event) ( \
> + unlikely (XFS_MTOVFS((ip)->i_mount)->vfs_flag & VFS_DMI) && \
> ( ((ip)->i_d.di_dmevmask & (1 << event)) || \
> ((ip)->i_mount->m_dmevmask & (1 << event)) ) \
> )
>
> -#define DM_EVENT_ENABLED_IO(vfsp, io, event) ( \
> - unlikely ((vfsp)->vfs_flag & VFS_DMI) && \
> - ( ((io)->io_dmevmask & (1 << event)) || \
> - ((io)->io_mount->m_dmevmask & (1 << event)) ) \
> - )
> -
> #define DM_XFS_VALID_FS_EVENTS ( \
> (1 << DM_EVENT_PREUNMOUNT) | \
> (1 << DM_EVENT_UNMOUNT) | \
> Index: linux-2.6-xfs/fs/xfs/xfs_rename.c
> ===================================================================
> --- linux-2.6-xfs.orig/fs/xfs/xfs_rename.c 2007-08-01 19:53:27.000000000 +0200
> +++ linux-2.6-xfs/fs/xfs/xfs_rename.c 2007-08-01 19:53:42.000000000 +0200
> @@ -264,9 +264,8 @@ xfs_rename(
> src_dp = XFS_BHVTOI(src_dir_bdp);
> mp = src_dp->i_mount;
>
> - if (DM_EVENT_ENABLED(src_dir_vp->v_vfsp, src_dp, DM_EVENT_RENAME) ||
> - DM_EVENT_ENABLED(target_dir_vp->v_vfsp,
> - target_dp, DM_EVENT_RENAME)) {
> + 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_dir_vp, DM_RIGHT_NULL,
> target_dir_vp, DM_RIGHT_NULL,
> @@ -603,9 +602,8 @@ xfs_rename(
> /* Fall through to std_return with error = 0 or errno from
> * xfs_trans_commit */
> std_return:
> - if (DM_EVENT_ENABLED(src_dir_vp->v_vfsp, src_dp, DM_EVENT_POSTRENAME) ||
> - DM_EVENT_ENABLED(target_dir_vp->v_vfsp,
> - target_dp, DM_EVENT_POSTRENAME)) {
> + 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_dir_vp, DM_RIGHT_NULL,
> target_dir_vp, DM_RIGHT_NULL,
> Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c
> ===================================================================
> --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2007-08-01 19:53:27.000000000 +0200
> +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2007-08-01 19:58:06.000000000 +0200
> @@ -337,7 +337,7 @@ xfs_setattr(
> }
> }
> } else {
> - if (DM_EVENT_ENABLED (vp->v_vfsp, ip, DM_EVENT_TRUNCATE) &&
> + if (DM_EVENT_ENABLED(ip, DM_EVENT_TRUNCATE) &&
> !(flags & ATTR_DMI)) {
> int dmflags = AT_DELAY_FLAG(flags) | DM_SEM_FLAG_WR;
> code = XFS_SEND_DATA(mp, DM_EVENT_TRUNCATE, vp,
> @@ -896,7 +896,7 @@ xfs_setattr(
> return code;
> }
>
> - if (DM_EVENT_ENABLED(vp->v_vfsp, ip, DM_EVENT_ATTRIBUTE) &&
> + if (DM_EVENT_ENABLED(ip, DM_EVENT_ATTRIBUTE) &&
> !(flags & ATTR_DMI)) {
> (void) XFS_SEND_NAMESP(mp, DM_EVENT_ATTRIBUTE, vp, DM_RIGHT_NULL,
> NULL, DM_RIGHT_NULL, NULL, NULL,
> @@ -1651,8 +1651,7 @@ xfs_inactive(
>
> mp = ip->i_mount;
>
> - if (ip->i_d.di_nlink == 0 &&
> - DM_EVENT_ENABLED(vp->v_vfsp, 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);
> }
>
> @@ -1907,7 +1906,7 @@ xfs_create(
> dm_di_mode = vap->va_mode;
> namelen = VNAMELEN(dentry);
>
> - if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_CREATE)) {
> + if (DM_EVENT_ENABLED(dp, DM_EVENT_CREATE)) {
> error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE,
> dir_vp, DM_RIGHT_NULL, NULL,
> DM_RIGHT_NULL, name, NULL,
> @@ -2072,9 +2071,8 @@ xfs_create(
> /* Fallthrough to std_return with error = 0 */
>
> std_return:
> - if ( (*vpp || (error != 0 && dm_event_sent != 0)) &&
> - DM_EVENT_ENABLED(dir_vp->v_vfsp, XFS_BHVTOI(dir_bdp),
> - DM_EVENT_POSTCREATE)) {
> + if ((*vpp || (error != 0 && dm_event_sent != 0)) &&
> + DM_EVENT_ENABLED(XFS_BHVTOI(dir_bdp), DM_EVENT_POSTCREATE)) {
> (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTCREATE,
> dir_vp, DM_RIGHT_NULL,
> *vpp ? vp:NULL,
> @@ -2408,7 +2406,7 @@ xfs_remove(
> IRELE(ip);
> }
>
> - if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_REMOVE)) {
> + if (DM_EVENT_ENABLED(dp, DM_EVENT_REMOVE)) {
> error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE, dir_vp,
> DM_RIGHT_NULL, NULL, DM_RIGHT_NULL,
> name, NULL, dm_di_mode, 0, 0);
> @@ -2584,8 +2582,7 @@ xfs_remove(
>
> /* Fall through to std_return with error = 0 */
> std_return:
> - if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp,
> - DM_EVENT_POSTREMOVE)) {
> + if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTREMOVE)) {
> (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTREMOVE,
> dir_vp, DM_RIGHT_NULL,
> NULL, DM_RIGHT_NULL,
> @@ -2662,7 +2659,7 @@ xfs_link(
> if (XFS_FORCED_SHUTDOWN(mp))
> return XFS_ERROR(EIO);
>
> - if (DM_EVENT_ENABLED(src_vp->v_vfsp, tdp, DM_EVENT_LINK)) {
> + if (DM_EVENT_ENABLED(tdp, DM_EVENT_LINK)) {
> error = XFS_SEND_NAMESP(mp, DM_EVENT_LINK,
> target_dir_vp, DM_RIGHT_NULL,
> src_vp, DM_RIGHT_NULL,
> @@ -2773,8 +2770,7 @@ xfs_link(
>
> /* Fall through to std_return with error = 0. */
> std_return:
> - if (DM_EVENT_ENABLED(src_vp->v_vfsp, sip,
> - DM_EVENT_POSTLINK)) {
> + if (DM_EVENT_ENABLED(sip, DM_EVENT_POSTLINK)) {
> (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTLINK,
> target_dir_vp, DM_RIGHT_NULL,
> src_vp, DM_RIGHT_NULL,
> @@ -2838,7 +2834,7 @@ xfs_mkdir(
> dp_joined_to_trans = B_FALSE;
> dm_di_mode = vap->va_mode;
>
> - if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_CREATE)) {
> + if (DM_EVENT_ENABLED(dp, DM_EVENT_CREATE)) {
> error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE,
> dir_vp, DM_RIGHT_NULL, NULL,
> DM_RIGHT_NULL, dir_name, NULL,
> @@ -2995,9 +2991,8 @@ xfs_mkdir(
> * xfs_trans_commit. */
>
> std_return:
> - if ( (created || (error != 0 && dm_event_sent != 0)) &&
> - DM_EVENT_ENABLED(dir_vp->v_vfsp, XFS_BHVTOI(dir_bdp),
> - DM_EVENT_POSTCREATE)) {
> + if ((created || (error != 0 && dm_event_sent != 0)) &&
> + DM_EVENT_ENABLED(XFS_BHVTOI(dir_bdp), DM_EVENT_POSTCREATE)) {
> (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTCREATE,
> dir_vp, DM_RIGHT_NULL,
> created ? XFS_ITOV(cdp):NULL,
> @@ -3066,7 +3061,7 @@ xfs_rmdir(
> IRELE(cdp);
> }
>
> - if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_REMOVE)) {
> + if (DM_EVENT_ENABLED(dp, DM_EVENT_REMOVE)) {
> error = XFS_SEND_NAMESP(mp, DM_EVENT_REMOVE,
> dir_vp, DM_RIGHT_NULL,
> NULL, DM_RIGHT_NULL,
> @@ -3255,7 +3250,7 @@ xfs_rmdir(
> /* Fall through to std_return with error = 0 or the errno
> * from xfs_trans_commit. */
> std_return:
> - if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_POSTREMOVE)) {
> + if (DM_EVENT_ENABLED(dp, DM_EVENT_POSTREMOVE)) {
> (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTREMOVE,
> dir_vp, DM_RIGHT_NULL,
> NULL, DM_RIGHT_NULL,
> @@ -3359,7 +3354,7 @@ xfs_symlink(
> }
> }
>
> - if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_SYMLINK)) {
> + if (DM_EVENT_ENABLED(dp, DM_EVENT_SYMLINK)) {
> error = XFS_SEND_NAMESP(mp, DM_EVENT_SYMLINK, dir_vp,
> DM_RIGHT_NULL, NULL, DM_RIGHT_NULL,
> link_name, target_path, 0, 0, 0);
> @@ -3559,8 +3554,7 @@ xfs_symlink(
> /* Fall through to std_return with error = 0 or errno from
> * xfs_trans_commit */
> std_return:
> - if (DM_EVENT_ENABLED(dir_vp->v_vfsp, XFS_BHVTOI(dir_bdp),
> - DM_EVENT_POSTSYMLINK)) {
> + if (DM_EVENT_ENABLED(XFS_BHVTOI(dir_bdp), DM_EVENT_POSTSYMLINK)) {
> (void) XFS_SEND_NAMESP(mp, DM_EVENT_POSTSYMLINK,
> dir_vp, DM_RIGHT_NULL,
> error ? NULL : XFS_ITOV(ip),
> @@ -4062,7 +4056,7 @@ xfs_alloc_file_space(
> /* Generate a DMAPI event if needed. */
> if (alloc_type != 0 && offset < ip->i_size &&
> (attr_flags&ATTR_DMI) == 0 &&
> - DM_EVENT_ENABLED(XFS_MTOVFS(mp), ip, DM_EVENT_WRITE)) {
> + DM_EVENT_ENABLED(ip, DM_EVENT_WRITE)) {
> xfs_off_t end_dmi_offset;
>
> end_dmi_offset = offset+len;
> @@ -4176,9 +4170,8 @@ retry:
> allocatesize_fsb -= allocated_fsb;
> }
> dmapi_enospc_check:
> - if (error == ENOSPC && (attr_flags&ATTR_DMI) == 0 &&
> - DM_EVENT_ENABLED(XFS_MTOVFS(mp), ip, DM_EVENT_NOSPACE)) {
> -
> + if (error == ENOSPC && (attr_flags & ATTR_DMI) == 0 &&
> + DM_EVENT_ENABLED(ip, DM_EVENT_NOSPACE)) {
> error = XFS_SEND_NAMESP(mp, DM_EVENT_NOSPACE,
> XFS_ITOV(ip), DM_RIGHT_NULL,
> XFS_ITOV(ip), DM_RIGHT_NULL,
> @@ -4322,9 +4315,8 @@ xfs_free_file_space(
> end_dmi_offset = offset + len;
> endoffset_fsb = XFS_B_TO_FSBT(mp, end_dmi_offset);
>
> - if (offset < ip->i_size &&
> - (attr_flags & ATTR_DMI) == 0 &&
> - DM_EVENT_ENABLED(XFS_MTOVFS(mp), ip, DM_EVENT_WRITE)) {
> + if (offset < ip->i_size && (attr_flags & 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, vp,
>
>
prev parent reply other threads:[~2007-08-03 2:31 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-02 14:34 [PATCH] remove unessecary vfs argument to DM_EVENT_ENABLED Christoph Hellwig
2007-08-03 2:21 ` Vlad Apostolov [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=46B2911A.60308@sgi.com \
--to=vapo@sgi.com \
--cc=hch@lst.de \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox