* [PATCH 0/3] XFS: sanitise VFS inode extraction
@ 2008-07-20 12:43 Dave Chinner
2008-07-20 12:43 ` [PATCH 1/3] XFS: Avoid directly referencing the VFS inode Dave Chinner
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Dave Chinner @ 2008-07-20 12:43 UTC (permalink / raw)
To: xfs
Getting the VFS inode from the XFS inode is done in a variety of
ways right now - direct deference or one of two XFS_ITOV macros.
This should be consiѕtent throughout the code - this patch
series does that in a way that is consistent with the opposite
XFS_I() conversion. We now use VFS_I() to extract the VFS inode
from the XFS inode.
Diffstat:
xfs/linux-2.6/xfs_export.c | 6 +++---
xfs/linux-2.6/xfs_fs_subr.c | 6 +++---
xfs/linux-2.6/xfs_ioctl.c | 4 ++--
xfs/linux-2.6/xfs_iops.c | 16 ++++++++--------
xfs/linux-2.6/xfs_iops.h | 6 ------
xfs/linux-2.6/xfs_linux.h | 2 +-
xfs/linux-2.6/xfs_lrw.c | 2 +-
xfs/linux-2.6/xfs_super.c | 6 +++---
xfs/linux-2.6/xfs_vnode.c | 2 +-
xfs/quota/xfs_dquot.c | 2 +-
xfs/quota/xfs_qm_syscalls.c | 2 +-
xfs/xfs_bmap.c | 2 +-
xfs/xfs_dfrag.c | 4 ++--
xfs/xfs_iget.c | 7 ++++---
xfs/xfs_inode.c | 4 ++--
xfs/xfs_inode.h | 24 +++++++++++++++++++-----
xfs/xfs_itable.c | 2 +-
xfs/xfs_utils.c | 4 ++--
xfs/xfs_utils.h | 4 ++--
xfs/xfs_vfsops.c | 10 +++++-----
xfs/xfs_vnodeops.c | 12 ++++++------
21 files changed, 68 insertions(+), 59 deletions(-)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/3] XFS: Avoid directly referencing the VFS inode.
2008-07-20 12:43 [PATCH 0/3] XFS: sanitise VFS inode extraction Dave Chinner
@ 2008-07-20 12:43 ` Dave Chinner
2008-07-20 12:43 ` [PATCH 2/3] XFS: kill shouty XFS_ITOV_NULL macro Dave Chinner
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Dave Chinner @ 2008-07-20 12:43 UTC (permalink / raw)
To: xfs; +Cc: Dave Chinner
In several places we directly convert from the XFS inode
to the linux (VFS) inode by a simple deference of ip->i_vnode.
We should not do this - a helper function should be used to
extract the VFS inode from the XFS inode.
Introduce the function VFS_I() to extract the VFS inode
from the XFS inode. The name was chosen to match XFS_I() which
is used to extract the XFS inode from the VFS inode.
Signed-off-by: Dave Chinner <david@fromorbit.com>
---
fs/xfs/linux-2.6/xfs_export.c | 6 +++---
fs/xfs/linux-2.6/xfs_fs_subr.c | 6 +++---
fs/xfs/linux-2.6/xfs_iops.c | 14 +++++++-------
fs/xfs/linux-2.6/xfs_iops.h | 6 ------
fs/xfs/linux-2.6/xfs_lrw.c | 2 +-
fs/xfs/linux-2.6/xfs_super.c | 4 ++--
fs/xfs/xfs_iget.c | 7 ++++---
fs/xfs/xfs_inode.h | 22 +++++++++++++++++++---
fs/xfs/xfs_utils.c | 4 ++--
9 files changed, 41 insertions(+), 30 deletions(-)
diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c
index 987fe84..d3880b7 100644
--- a/fs/xfs/linux-2.6/xfs_export.c
+++ b/fs/xfs/linux-2.6/xfs_export.c
@@ -139,7 +139,7 @@ xfs_nfs_get_inode(
}
xfs_iunlock(ip, XFS_ILOCK_SHARED);
- return ip->i_vnode;
+ return VFS_I(ip);
}
STATIC struct dentry *
@@ -219,9 +219,9 @@ xfs_fs_get_parent(
if (unlikely(error))
return ERR_PTR(-error);
- parent = d_alloc_anon(cip->i_vnode);
+ parent = d_alloc_anon(VFS_I(cip));
if (unlikely(!parent)) {
- iput(cip->i_vnode);
+ iput(VFS_I(cip));
return ERR_PTR(-ENOMEM);
}
return parent;
diff --git a/fs/xfs/linux-2.6/xfs_fs_subr.c b/fs/xfs/linux-2.6/xfs_fs_subr.c
index 1eefe61..36caa6d 100644
--- a/fs/xfs/linux-2.6/xfs_fs_subr.c
+++ b/fs/xfs/linux-2.6/xfs_fs_subr.c
@@ -31,7 +31,7 @@ xfs_tosspages(
xfs_off_t last,
int fiopt)
{
- struct address_space *mapping = ip->i_vnode->i_mapping;
+ struct address_space *mapping = VFS_I(ip)->i_mapping;
if (mapping->nrpages)
truncate_inode_pages(mapping, first);
@@ -44,7 +44,7 @@ xfs_flushinval_pages(
xfs_off_t last,
int fiopt)
{
- struct address_space *mapping = ip->i_vnode->i_mapping;
+ struct address_space *mapping = VFS_I(ip)->i_mapping;
int ret = 0;
if (mapping->nrpages) {
@@ -64,7 +64,7 @@ xfs_flush_pages(
uint64_t flags,
int fiopt)
{
- struct address_space *mapping = ip->i_vnode->i_mapping;
+ struct address_space *mapping = VFS_I(ip)->i_mapping;
int ret = 0;
int ret2;
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c
index f3267fc..5825ab4 100644
--- a/fs/xfs/linux-2.6/xfs_iops.c
+++ b/fs/xfs/linux-2.6/xfs_iops.c
@@ -62,7 +62,7 @@ void
xfs_synchronize_atime(
xfs_inode_t *ip)
{
- struct inode *inode = ip->i_vnode;
+ struct inode *inode = VFS_I(ip);
if (inode) {
ip->i_d.di_atime.t_sec = (__int32_t)inode->i_atime.tv_sec;
@@ -79,7 +79,7 @@ void
xfs_mark_inode_dirty_sync(
xfs_inode_t *ip)
{
- struct inode *inode = ip->i_vnode;
+ struct inode *inode = VFS_I(ip);
if (inode)
mark_inode_dirty_sync(inode);
@@ -299,7 +299,7 @@ xfs_vn_mknod(
if (unlikely(error))
goto out_free_acl;
- inode = ip->i_vnode;
+ inode = VFS_I(ip);
error = xfs_init_security(inode, dir);
if (unlikely(error))
@@ -366,7 +366,7 @@ xfs_vn_lookup(
return NULL;
}
- return d_splice_alias(cip->i_vnode, dentry);
+ return d_splice_alias(VFS_I(cip), dentry);
}
STATIC struct dentry *
@@ -399,12 +399,12 @@ xfs_vn_ci_lookup(
/* if exact match, just splice and exit */
if (!ci_name.name)
- return d_splice_alias(ip->i_vnode, dentry);
+ return d_splice_alias(VFS_I(ip), dentry);
/* else case-insensitive match... */
dname.name = ci_name.name;
dname.len = ci_name.len;
- dentry = d_add_ci(ip->i_vnode, dentry, &dname);
+ dentry = d_add_ci(VFS_I(ip), dentry, &dname);
kmem_free(ci_name.name);
return dentry;
}
@@ -478,7 +478,7 @@ xfs_vn_symlink(
if (unlikely(error))
goto out;
- inode = cip->i_vnode;
+ inode = VFS_I(cip);
error = xfs_init_security(inode, dir);
if (unlikely(error))
diff --git a/fs/xfs/linux-2.6/xfs_iops.h b/fs/xfs/linux-2.6/xfs_iops.h
index d97ba93..fdda404 100644
--- a/fs/xfs/linux-2.6/xfs_iops.h
+++ b/fs/xfs/linux-2.6/xfs_iops.h
@@ -33,10 +33,4 @@ struct xfs_inode;
extern void xfs_ichgtime(struct xfs_inode *, int);
extern void xfs_ichgtime_fast(struct xfs_inode *, struct inode *, int);
-#define xfs_vtoi(vp) \
- ((struct xfs_inode *)vn_to_inode(vp)->i_private)
-
-#define XFS_I(inode) \
- ((struct xfs_inode *)(inode)->i_private)
-
#endif /* __XFS_IOPS_H__ */
diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c
index 5e3b575..d00c155 100644
--- a/fs/xfs/linux-2.6/xfs_lrw.c
+++ b/fs/xfs/linux-2.6/xfs_lrw.c
@@ -137,7 +137,7 @@ xfs_iozero(
struct address_space *mapping;
int status;
- mapping = ip->i_vnode->i_mapping;
+ mapping = VFS_I(ip)->i_mapping;
do {
unsigned offset, bytes;
void *fsdata;
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index 6d9c8c7..a507762 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -1107,7 +1107,7 @@ void
xfs_flush_inode(
xfs_inode_t *ip)
{
- struct inode *inode = ip->i_vnode;
+ struct inode *inode = VFS_I(ip);
igrab(inode);
xfs_syncd_queue_work(ip->i_mount, inode, xfs_flush_inode_work);
@@ -1826,7 +1826,7 @@ xfs_fs_fill_super(
sb->s_time_gran = 1;
set_posix_acl_flag(sb);
- root = igrab(mp->m_rootip->i_vnode);
+ root = igrab(VFS_I(mp->m_rootip));
if (!root) {
error = ENOENT;
goto fail_unmount;
diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c
index f16ca6c..81047be 100644
--- a/fs/xfs/xfs_iget.c
+++ b/fs/xfs/xfs_iget.c
@@ -392,10 +392,11 @@ xfs_iput(xfs_inode_t *ip,
* Special iput for brand-new inodes that are still locked
*/
void
-xfs_iput_new(xfs_inode_t *ip,
- uint lock_flags)
+xfs_iput_new(
+ xfs_inode_t *ip,
+ uint lock_flags)
{
- struct inode *inode = ip->i_vnode;
+ struct inode *inode = VFS_I(ip);
xfs_itrace_entry(ip);
diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
index c440b1d..7726d41 100644
--- a/fs/xfs/xfs_inode.h
+++ b/fs/xfs/xfs_inode.h
@@ -255,6 +255,25 @@ typedef struct xfs_inode {
#define XFS_ISIZE(ip) (((ip)->i_d.di_mode & S_IFMT) == S_IFREG) ? \
(ip)->i_size : (ip)->i_d.di_size;
+/* Convert from vfs inode to xfs inode */
+static inline struct xfs_inode *XFS_I(struct inode *inode)
+{
+ return (struct xfs_inode *)inode->i_private;
+}
+
+static inline struct xfs_inode *xfs_vtoi(bhv_vnode_t *vp)
+{
+ return XFS_I(vn_to_inode(vp));
+}
+
+/* convert from xfs inode to vfs inode */
+static inline struct inode *VFS_I(struct xfs_inode *ip)
+{
+ return vn_to_inode(ip->i_vnode);
+}
+#define XFS_ITOV(ip) VFS_I(ip)
+#define XFS_ITOV_NULL(ip) VFS_I(ip)
+
/*
* i_flags helper functions
*/
@@ -431,9 +450,6 @@ xfs_iflags_test_and_clear(xfs_inode_t *ip, unsigned short flags)
#define XFS_ITRUNC_DEFINITE 0x1
#define XFS_ITRUNC_MAYBE 0x2
-#define XFS_ITOV(ip) ((ip)->i_vnode)
-#define XFS_ITOV_NULL(ip) ((ip)->i_vnode)
-
/*
* For multiple groups support: if S_ISGID bit is set in the parent
* directory, group of new file is set to that of the parent, and
diff --git a/fs/xfs/xfs_utils.c b/fs/xfs/xfs_utils.c
index 98e5f11..35d4d41 100644
--- a/fs/xfs/xfs_utils.c
+++ b/fs/xfs/xfs_utils.c
@@ -237,7 +237,7 @@ xfs_droplink(
ASSERT (ip->i_d.di_nlink > 0);
ip->i_d.di_nlink--;
- drop_nlink(ip->i_vnode);
+ drop_nlink(VFS_I(ip));
xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
error = 0;
@@ -301,7 +301,7 @@ xfs_bumplink(
ASSERT(ip->i_d.di_nlink > 0);
ip->i_d.di_nlink++;
- inc_nlink(ip->i_vnode);
+ inc_nlink(VFS_I(ip));
if ((ip->i_d.di_version == XFS_DINODE_VERSION_1) &&
(ip->i_d.di_nlink > XFS_MAXLINK_1)) {
/*
--
1.5.6
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] XFS: kill shouty XFS_ITOV_NULL macro
2008-07-20 12:43 [PATCH 0/3] XFS: sanitise VFS inode extraction Dave Chinner
2008-07-20 12:43 ` [PATCH 1/3] XFS: Avoid directly referencing the VFS inode Dave Chinner
@ 2008-07-20 12:43 ` Dave Chinner
2008-07-20 12:43 ` [PATCH 3/3] XFS: Kill shouty XFS_ITOV() macro Dave Chinner
2008-07-21 8:01 ` [PATCH 0/3] XFS: sanitise VFS inode extraction Christoph Hellwig
3 siblings, 0 replies; 5+ messages in thread
From: Dave Chinner @ 2008-07-20 12:43 UTC (permalink / raw)
To: xfs; +Cc: Dave Chinner
Replace XFS_ITOV_NULL() with the new VFS_I() inline.
Signed-off-by: Dave Chinner <david@fromorbit.com>
---
fs/xfs/linux-2.6/xfs_vnode.c | 2 +-
fs/xfs/quota/xfs_qm_syscalls.c | 2 +-
fs/xfs/xfs_inode.h | 1 -
fs/xfs/xfs_vfsops.c | 2 +-
fs/xfs/xfs_vnodeops.c | 2 +-
5 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/fs/xfs/linux-2.6/xfs_vnode.c b/fs/xfs/linux-2.6/xfs_vnode.c
index bc7afe0..ffd6003 100644
--- a/fs/xfs/linux-2.6/xfs_vnode.c
+++ b/fs/xfs/linux-2.6/xfs_vnode.c
@@ -158,7 +158,7 @@ vn_hold(
*/
static inline int xfs_icount(struct xfs_inode *ip)
{
- bhv_vnode_t *vp = XFS_ITOV_NULL(ip);
+ bhv_vnode_t *vp = VFS_I(ip);
if (vp)
return vn_count(vp);
diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c
index c43b6d4..8407f32 100644
--- a/fs/xfs/quota/xfs_qm_syscalls.c
+++ b/fs/xfs/quota/xfs_qm_syscalls.c
@@ -1054,7 +1054,7 @@ xfs_qm_dqrele_inodes_ag(
first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1);
/* Root inode, rbmip and rsumip have associated blocks */
- vp = XFS_ITOV_NULL(ip);
+ vp = VFS_I(ip);
if (!vp || ip == XFS_QI_UQIP(mp) || ip == XFS_QI_GQIP(mp)) {
ASSERT(ip->i_udquot == NULL);
ASSERT(ip->i_gdquot == NULL);
diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
index 7726d41..4d966a4 100644
--- a/fs/xfs/xfs_inode.h
+++ b/fs/xfs/xfs_inode.h
@@ -272,7 +272,6 @@ static inline struct inode *VFS_I(struct xfs_inode *ip)
return vn_to_inode(ip->i_vnode);
}
#define XFS_ITOV(ip) VFS_I(ip)
-#define XFS_ITOV_NULL(ip) VFS_I(ip)
/*
* i_flags helper functions
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c
index 0ff9812..a184e36 100644
--- a/fs/xfs/xfs_vfsops.c
+++ b/fs/xfs/xfs_vfsops.c
@@ -325,7 +325,7 @@ xfs_sync_inodes_ag(
* skip inodes in reclaim. Let xfs_syncsub do that for
* us so we don't need to worry.
*/
- vp = XFS_ITOV_NULL(ip);
+ vp = VFS_I(ip);
if (!vp) {
read_unlock(&pag->pag_ici_lock);
continue;
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index 2af1be3..5d1b254 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -2924,7 +2924,7 @@ xfs_finish_reclaim(
int sync_mode)
{
xfs_perag_t *pag = xfs_get_perag(ip->i_mount, ip->i_ino);
- bhv_vnode_t *vp = XFS_ITOV_NULL(ip);
+ bhv_vnode_t *vp = VFS_I(ip);
if (vp && VN_BAD(vp))
goto reclaim;
--
1.5.6
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] XFS: Kill shouty XFS_ITOV() macro
2008-07-20 12:43 [PATCH 0/3] XFS: sanitise VFS inode extraction Dave Chinner
2008-07-20 12:43 ` [PATCH 1/3] XFS: Avoid directly referencing the VFS inode Dave Chinner
2008-07-20 12:43 ` [PATCH 2/3] XFS: kill shouty XFS_ITOV_NULL macro Dave Chinner
@ 2008-07-20 12:43 ` Dave Chinner
2008-07-21 8:01 ` [PATCH 0/3] XFS: sanitise VFS inode extraction Christoph Hellwig
3 siblings, 0 replies; 5+ messages in thread
From: Dave Chinner @ 2008-07-20 12:43 UTC (permalink / raw)
To: xfs; +Cc: Dave Chinner
Replace XFS_ITOV() with the new VFS_I() inline.
Signed-off-by: Dave Chinner <david@fromorbit.com>
---
fs/xfs/linux-2.6/xfs_ioctl.c | 4 ++--
fs/xfs/linux-2.6/xfs_iops.c | 2 +-
fs/xfs/linux-2.6/xfs_linux.h | 2 +-
fs/xfs/linux-2.6/xfs_super.c | 2 +-
fs/xfs/quota/xfs_dquot.c | 2 +-
fs/xfs/xfs_bmap.c | 2 +-
fs/xfs/xfs_dfrag.c | 4 ++--
fs/xfs/xfs_inode.c | 4 ++--
fs/xfs/xfs_inode.h | 1 -
fs/xfs/xfs_itable.c | 2 +-
fs/xfs/xfs_utils.h | 4 ++--
fs/xfs/xfs_vfsops.c | 8 ++++----
fs/xfs/xfs_vnodeops.c | 10 +++++-----
13 files changed, 23 insertions(+), 24 deletions(-)
diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c
index bae2e91..b6c0450 100644
--- a/fs/xfs/linux-2.6/xfs_ioctl.c
+++ b/fs/xfs/linux-2.6/xfs_ioctl.c
@@ -247,7 +247,7 @@ xfs_vget_fsop_handlereq(
xfs_iunlock(ip, XFS_ILOCK_SHARED);
- *inode = XFS_ITOV(ip);
+ *inode = VFS_I(ip);
return 0;
}
@@ -1162,7 +1162,7 @@ xfs_ioctl_setattr(
(mask & FSX_NONBLOCK) ? DM_FLAGS_NDELAY : 0);
}
- vn_revalidate(XFS_ITOV(ip)); /* update flags */
+ vn_revalidate(VFS_I(ip)); /* update flags */
return 0;
error_return:
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c
index 5825ab4..7cdbd60 100644
--- a/fs/xfs/linux-2.6/xfs_iops.c
+++ b/fs/xfs/linux-2.6/xfs_iops.c
@@ -101,7 +101,7 @@ xfs_ichgtime(
xfs_inode_t *ip,
int flags)
{
- struct inode *inode = vn_to_inode(XFS_ITOV(ip));
+ struct inode *inode = VFS_I(ip);
timespec_t tv;
nanotime(&tv);
diff --git a/fs/xfs/linux-2.6/xfs_linux.h b/fs/xfs/linux-2.6/xfs_linux.h
index 4d45d93..a9cd6e4 100644
--- a/fs/xfs/linux-2.6/xfs_linux.h
+++ b/fs/xfs/linux-2.6/xfs_linux.h
@@ -180,7 +180,7 @@
#define xfs_sort(a,n,s,fn) sort(a,n,s,fn,NULL)
#define xfs_stack_trace() dump_stack()
#define xfs_itruncate_data(ip, off) \
- (-vmtruncate(vn_to_inode(XFS_ITOV(ip)), (off)))
+ (-vmtruncate(vn_to_inode(VFS_I(ip)), (off)))
/* Move the kernel do_div definition off to one side */
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index a507762..74add64 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -1132,7 +1132,7 @@ void
xfs_flush_device(
xfs_inode_t *ip)
{
- struct inode *inode = vn_to_inode(XFS_ITOV(ip));
+ struct inode *inode = VFS_I(ip);
igrab(inode);
xfs_syncd_queue_work(ip->i_mount, inode, xfs_flush_device_work);
diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c
index fc9f3fb..68adc5f 100644
--- a/fs/xfs/quota/xfs_dquot.c
+++ b/fs/xfs/quota/xfs_dquot.c
@@ -431,7 +431,7 @@ xfs_qm_dqalloc(
* when it unlocks the inode. Since we want to keep the quota
* inode around, we bump the vnode ref count now.
*/
- VN_HOLD(XFS_ITOV(quotip));
+ VN_HOLD(VFS_I(quotip));
xfs_trans_ijoin(tp, quotip, XFS_ILOCK_EXCL);
nmaps = 1;
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
index 3c4beb3..2f46b67 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
@@ -4000,7 +4000,7 @@ xfs_bmap_add_attrfork(
ip->i_d.di_aformat = XFS_DINODE_FMT_EXTENTS;
}
ASSERT(ip->i_d.di_anextents == 0);
- VN_HOLD(XFS_ITOV(ip));
+ VN_HOLD(VFS_I(ip));
xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);
switch (ip->i_d.di_format) {
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c
index 2211e88..9e75101 100644
--- a/fs/xfs/xfs_dfrag.c
+++ b/fs/xfs/xfs_dfrag.c
@@ -150,8 +150,8 @@ xfs_swap_extents(
}
sbp = &sxp->sx_stat;
- vp = XFS_ITOV(ip);
- tvp = XFS_ITOV(tip);
+ vp = VFS_I(ip);
+ tvp = VFS_I(tip);
/* Lock in i_ino order */
if (ip->i_ino < tip->i_ino) {
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index ae19b05..92a054c 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -1077,7 +1077,7 @@ xfs_ialloc(
}
ASSERT(ip != NULL);
- vp = XFS_ITOV(ip);
+ vp = VFS_I(ip);
ip->i_d.di_mode = (__uint16_t)mode;
ip->i_d.di_onlink = 0;
ip->i_d.di_nlink = nlink;
@@ -1408,7 +1408,7 @@ xfs_itruncate_start(
(flags == XFS_ITRUNC_MAYBE));
mp = ip->i_mount;
- vp = XFS_ITOV(ip);
+ vp = VFS_I(ip);
/* wait for the completion of any pending DIOs */
if (new_size < ip->i_size)
diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
index 4d966a4..440b443 100644
--- a/fs/xfs/xfs_inode.h
+++ b/fs/xfs/xfs_inode.h
@@ -271,7 +271,6 @@ static inline struct inode *VFS_I(struct xfs_inode *ip)
{
return vn_to_inode(ip->i_vnode);
}
-#define XFS_ITOV(ip) VFS_I(ip)
/*
* i_flags helper functions
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
index 9a3ef9d..4feda54 100644
--- a/fs/xfs/xfs_itable.c
+++ b/fs/xfs/xfs_itable.c
@@ -72,7 +72,7 @@ xfs_bulkstat_one_iget(
ASSERT(ip != NULL);
ASSERT(ip->i_blkno != (xfs_daddr_t)0);
- vp = XFS_ITOV(ip);
+ vp = VFS_I(ip);
dic = &ip->i_d;
/* xfs_iget returns the following without needing
diff --git a/fs/xfs/xfs_utils.h b/fs/xfs/xfs_utils.h
index f316cb8..7b533df 100644
--- a/fs/xfs/xfs_utils.h
+++ b/fs/xfs/xfs_utils.h
@@ -18,8 +18,8 @@
#ifndef __XFS_UTILS_H__
#define __XFS_UTILS_H__
-#define IRELE(ip) VN_RELE(XFS_ITOV(ip))
-#define IHOLD(ip) VN_HOLD(XFS_ITOV(ip))
+#define IRELE(ip) VN_RELE(VFS_I(ip))
+#define IHOLD(ip) VN_HOLD(VFS_I(ip))
extern int xfs_truncate_file(xfs_mount_t *, xfs_inode_t *);
extern int xfs_dir_ialloc(xfs_trans_t **, xfs_inode_t *, mode_t, xfs_nlink_t,
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c
index a184e36..8bf6bb8 100644
--- a/fs/xfs/xfs_vfsops.c
+++ b/fs/xfs/xfs_vfsops.c
@@ -128,7 +128,7 @@ xfs_unmount_flush(
xfs_inode_t *rip = mp->m_rootip;
xfs_inode_t *rbmip;
xfs_inode_t *rsumip = NULL;
- bhv_vnode_t *rvp = XFS_ITOV(rip);
+ bhv_vnode_t *rvp = VFS_I(rip);
int error;
xfs_ilock(rip, XFS_ILOCK_EXCL | XFS_ILOCK_PARENT);
@@ -146,7 +146,7 @@ xfs_unmount_flush(
if (error == EFSCORRUPTED)
goto fscorrupt_out;
- ASSERT(vn_count(XFS_ITOV(rbmip)) == 1);
+ ASSERT(vn_count(VFS_I(rbmip)) == 1);
rsumip = mp->m_rsumip;
xfs_ilock(rsumip, XFS_ILOCK_EXCL);
@@ -157,7 +157,7 @@ xfs_unmount_flush(
if (error == EFSCORRUPTED)
goto fscorrupt_out;
- ASSERT(vn_count(XFS_ITOV(rsumip)) == 1);
+ ASSERT(vn_count(VFS_I(rsumip)) == 1);
}
/*
@@ -360,7 +360,7 @@ xfs_sync_inodes_ag(
continue;
xfs_ilock(ip, lock_flags);
- ASSERT(vp == XFS_ITOV(ip));
+ ASSERT(vp == VFS_I(ip));
ASSERT(ip->i_mount == mp);
vnode_refed = B_TRUE;
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index 5d1b254..cca2871 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -705,7 +705,7 @@ xfs_fsync(
return XFS_ERROR(EIO);
/* capture size updates in I/O completion before writing the inode. */
- error = filemap_fdatawait(vn_to_inode(XFS_ITOV(ip))->i_mapping);
+ error = filemap_fdatawait(vn_to_inode(VFS_I(ip))->i_mapping);
if (error)
return XFS_ERROR(error);
@@ -1151,7 +1151,7 @@ int
xfs_release(
xfs_inode_t *ip)
{
- bhv_vnode_t *vp = XFS_ITOV(ip);
+ bhv_vnode_t *vp = VFS_I(ip);
xfs_mount_t *mp = ip->i_mount;
int error;
@@ -1218,7 +1218,7 @@ int
xfs_inactive(
xfs_inode_t *ip)
{
- bhv_vnode_t *vp = XFS_ITOV(ip);
+ bhv_vnode_t *vp = VFS_I(ip);
xfs_bmap_free_t free_list;
xfs_fsblock_t first_block;
int committed;
@@ -2864,7 +2864,7 @@ int
xfs_reclaim(
xfs_inode_t *ip)
{
- bhv_vnode_t *vp = XFS_ITOV(ip);
+ bhv_vnode_t *vp = VFS_I(ip);
xfs_itrace_entry(ip);
@@ -3326,7 +3326,7 @@ xfs_free_file_space(
xfs_trans_t *tp;
int need_iolock = 1;
- vp = XFS_ITOV(ip);
+ vp = VFS_I(ip);
mp = ip->i_mount;
xfs_itrace_entry(ip);
--
1.5.6
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 0/3] XFS: sanitise VFS inode extraction
2008-07-20 12:43 [PATCH 0/3] XFS: sanitise VFS inode extraction Dave Chinner
` (2 preceding siblings ...)
2008-07-20 12:43 ` [PATCH 3/3] XFS: Kill shouty XFS_ITOV() macro Dave Chinner
@ 2008-07-21 8:01 ` Christoph Hellwig
3 siblings, 0 replies; 5+ messages in thread
From: Christoph Hellwig @ 2008-07-21 8:01 UTC (permalink / raw)
To: Dave Chinner; +Cc: xfs
On Sun, Jul 20, 2008 at 10:43:45PM +1000, Dave Chinner wrote:
> Getting the VFS inode from the XFS inode is done in a variety of
> ways right now - direct deference or one of two XFS_ITOV macros.
> This should be consi??tent throughout the code - this patch
> series does that in a way that is consistent with the opposite
> XFS_I() conversion. We now use VFS_I() to extract the VFS inode
> from the XFS inode.
All three patches looks good to me, but please kill the vn_to_inode
useage in VFS_I - vn_to_inode and inode_to_vn are not needed anymore
at all nowdays and will go away completely real soon.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-07-21 8:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-20 12:43 [PATCH 0/3] XFS: sanitise VFS inode extraction Dave Chinner
2008-07-20 12:43 ` [PATCH 1/3] XFS: Avoid directly referencing the VFS inode Dave Chinner
2008-07-20 12:43 ` [PATCH 2/3] XFS: kill shouty XFS_ITOV_NULL macro Dave Chinner
2008-07-20 12:43 ` [PATCH 3/3] XFS: Kill shouty XFS_ITOV() macro Dave Chinner
2008-07-21 8:01 ` [PATCH 0/3] XFS: sanitise VFS inode extraction Christoph Hellwig
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.