diff options
author | Christoph Hellwig <hch@infradead.org> | 2007-08-28 02:12:30 -0400 |
---|---|---|
committer | Tim Shimmin <tes@chook.melbourne.sgi.com> | 2007-10-15 02:54:29 -0400 |
commit | 993386c19afa53fa54d00c7721e56ba820b3400d (patch) | |
tree | 1715fdeb9cc5ea99466e179b54e84b168fd5e127 /fs/xfs/xfs_bmap.c | |
parent | b93bd20cd59eb7ec172f95d08b100fea688d8bcf (diff) |
[XFS] decontaminate vnode operations from behavior details
All vnode ops now take struct xfs_inode pointers and the behaviour related
glue is split out into methods of it's own. This required fixing
xfs_create/mkdir/symlink to not mess with the inode pointer but rather use
a separate boolean for error handling. Thanks to Dave Chinner for that
fix.
SGI-PV: 969608
SGI-Modid: xfs-linux-melb:xfs-kern:29492a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_bmap.c')
-rw-r--r-- | fs/xfs/xfs_bmap.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index ea4eab14a603..16b97db4f8aa 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c | |||
@@ -5764,7 +5764,7 @@ xfs_getbmapx_fix_eof_hole( | |||
5764 | */ | 5764 | */ |
5765 | int /* error code */ | 5765 | int /* error code */ |
5766 | xfs_getbmap( | 5766 | xfs_getbmap( |
5767 | bhv_desc_t *bdp, /* XFS behavior descriptor*/ | 5767 | xfs_inode_t *ip, |
5768 | struct getbmap *bmv, /* user bmap structure */ | 5768 | struct getbmap *bmv, /* user bmap structure */ |
5769 | void __user *ap, /* pointer to user's array */ | 5769 | void __user *ap, /* pointer to user's array */ |
5770 | int interface) /* interface flags */ | 5770 | int interface) /* interface flags */ |
@@ -5773,7 +5773,6 @@ xfs_getbmap( | |||
5773 | int error; /* return value */ | 5773 | int error; /* return value */ |
5774 | __int64_t fixlen; /* length for -1 case */ | 5774 | __int64_t fixlen; /* length for -1 case */ |
5775 | int i; /* extent number */ | 5775 | int i; /* extent number */ |
5776 | xfs_inode_t *ip; /* xfs incore inode pointer */ | ||
5777 | bhv_vnode_t *vp; /* corresponding vnode */ | 5776 | bhv_vnode_t *vp; /* corresponding vnode */ |
5778 | int lock; /* lock state */ | 5777 | int lock; /* lock state */ |
5779 | xfs_bmbt_irec_t *map; /* buffer for user's data */ | 5778 | xfs_bmbt_irec_t *map; /* buffer for user's data */ |
@@ -5791,8 +5790,7 @@ xfs_getbmap( | |||
5791 | int bmapi_flags; /* flags for xfs_bmapi */ | 5790 | int bmapi_flags; /* flags for xfs_bmapi */ |
5792 | __int32_t oflags; /* getbmapx bmv_oflags field */ | 5791 | __int32_t oflags; /* getbmapx bmv_oflags field */ |
5793 | 5792 | ||
5794 | vp = BHV_TO_VNODE(bdp); | 5793 | vp = XFS_ITOV(ip); |
5795 | ip = XFS_BHVTOI(bdp); | ||
5796 | mp = ip->i_mount; | 5794 | mp = ip->i_mount; |
5797 | 5795 | ||
5798 | whichfork = interface & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; | 5796 | whichfork = interface & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; |