[XFS] remove struct vnode::v_type
SGI-PV: 936236 SGI-Modid: xfs-linux:xfs-kern:195878a Signed-off-by: Christoph Hellwig <hch@sgi.com> Signed-off-by: Nathan Scott <nathans@sgi.com>
This commit is contained in:

committed by
Nathan Scott

parent
155ffd075c
commit
0432dab2d2
@@ -104,7 +104,7 @@ xfs_open(
|
||||
* If it's a directory with any blocks, read-ahead block 0
|
||||
* as we're almost certain to have the next operation be a read there.
|
||||
*/
|
||||
if (vp->v_type == VDIR && ip->i_d.di_nextents > 0) {
|
||||
if (VN_ISDIR(vp) && ip->i_d.di_nextents > 0) {
|
||||
mode = xfs_ilock_map_shared(ip);
|
||||
if (ip->i_d.di_nextents > 0)
|
||||
(void)xfs_da_reada_buf(NULL, ip, 0, XFS_DATA_FORK);
|
||||
@@ -163,18 +163,21 @@ xfs_getattr(
|
||||
/*
|
||||
* Copy from in-core inode.
|
||||
*/
|
||||
vap->va_type = vp->v_type;
|
||||
vap->va_mode = ip->i_d.di_mode & MODEMASK;
|
||||
vap->va_mode = ip->i_d.di_mode;
|
||||
vap->va_uid = ip->i_d.di_uid;
|
||||
vap->va_gid = ip->i_d.di_gid;
|
||||
vap->va_projid = ip->i_d.di_projid;
|
||||
|
||||
/*
|
||||
* Check vnode type block/char vs. everything else.
|
||||
* Do it with bitmask because that's faster than looking
|
||||
* for multiple values individually.
|
||||
*/
|
||||
if (((1 << vp->v_type) & ((1<<VBLK) | (1<<VCHR))) == 0) {
|
||||
switch (ip->i_d.di_mode & S_IFMT) {
|
||||
case S_IFBLK:
|
||||
case S_IFCHR:
|
||||
vap->va_rdev = ip->i_df.if_u2.if_rdev;
|
||||
vap->va_blocksize = BLKDEV_IOSIZE;
|
||||
break;
|
||||
default:
|
||||
vap->va_rdev = 0;
|
||||
|
||||
if (!(ip->i_d.di_flags & XFS_DIFLAG_REALTIME)) {
|
||||
@@ -224,9 +227,7 @@ xfs_getattr(
|
||||
(ip->i_d.di_extsize << mp->m_sb.sb_blocklog) :
|
||||
(mp->m_sb.sb_rextsize << mp->m_sb.sb_blocklog);
|
||||
}
|
||||
} else {
|
||||
vap->va_rdev = ip->i_df.if_u2.if_rdev;
|
||||
vap->va_blocksize = BLKDEV_IOSIZE;
|
||||
break;
|
||||
}
|
||||
|
||||
vap->va_atime.tv_sec = ip->i_d.di_atime.t_sec;
|
||||
@@ -468,7 +469,7 @@ xfs_setattr(
|
||||
m |= S_ISGID;
|
||||
#if 0
|
||||
/* Linux allows this, Irix doesn't. */
|
||||
if ((vap->va_mode & S_ISVTX) && vp->v_type != VDIR)
|
||||
if ((vap->va_mode & S_ISVTX) && !VN_ISDIR(vp))
|
||||
m |= S_ISVTX;
|
||||
#endif
|
||||
if (m && !capable(CAP_FSETID))
|
||||
@@ -546,10 +547,10 @@ xfs_setattr(
|
||||
goto error_return;
|
||||
}
|
||||
|
||||
if (vp->v_type == VDIR) {
|
||||
if (VN_ISDIR(vp)) {
|
||||
code = XFS_ERROR(EISDIR);
|
||||
goto error_return;
|
||||
} else if (vp->v_type != VREG) {
|
||||
} else if (!VN_ISREG(vp)) {
|
||||
code = XFS_ERROR(EINVAL);
|
||||
goto error_return;
|
||||
}
|
||||
@@ -1567,7 +1568,7 @@ xfs_release(
|
||||
vp = BHV_TO_VNODE(bdp);
|
||||
ip = XFS_BHVTOI(bdp);
|
||||
|
||||
if ((vp->v_type != VREG) || (ip->i_d.di_mode == 0)) {
|
||||
if (!VN_ISREG(vp) || (ip->i_d.di_mode == 0)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1895,7 +1896,7 @@ xfs_create(
|
||||
dp = XFS_BHVTOI(dir_bdp);
|
||||
mp = dp->i_mount;
|
||||
|
||||
dm_di_mode = vap->va_mode|VTTOIF(vap->va_type);
|
||||
dm_di_mode = vap->va_mode;
|
||||
namelen = VNAMELEN(dentry);
|
||||
|
||||
if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_CREATE)) {
|
||||
@@ -1973,8 +1974,7 @@ xfs_create(
|
||||
(error = XFS_DIR_CANENTER(mp, tp, dp, name, namelen)))
|
||||
goto error_return;
|
||||
rdev = (vap->va_mask & XFS_AT_RDEV) ? vap->va_rdev : 0;
|
||||
error = xfs_dir_ialloc(&tp, dp,
|
||||
MAKEIMODE(vap->va_type,vap->va_mode), 1,
|
||||
error = xfs_dir_ialloc(&tp, dp, vap->va_mode, 1,
|
||||
rdev, credp, prid, resblks > 0,
|
||||
&ip, &committed);
|
||||
if (error) {
|
||||
@@ -2620,7 +2620,7 @@ xfs_link(
|
||||
vn_trace_entry(src_vp, __FUNCTION__, (inst_t *)__return_address);
|
||||
|
||||
target_namelen = VNAMELEN(dentry);
|
||||
if (src_vp->v_type == VDIR)
|
||||
if (VN_ISDIR(src_vp))
|
||||
return XFS_ERROR(EPERM);
|
||||
|
||||
src_bdp = vn_bhv_lookup_unlocked(VN_BHV_HEAD(src_vp), &xfs_vnodeops);
|
||||
@@ -2805,7 +2805,7 @@ xfs_mkdir(
|
||||
|
||||
tp = NULL;
|
||||
dp_joined_to_trans = B_FALSE;
|
||||
dm_di_mode = vap->va_mode|VTTOIF(vap->va_type);
|
||||
dm_di_mode = vap->va_mode;
|
||||
|
||||
if (DM_EVENT_ENABLED(dir_vp->v_vfsp, dp, DM_EVENT_CREATE)) {
|
||||
error = XFS_SEND_NAMESP(mp, DM_EVENT_CREATE,
|
||||
@@ -2879,8 +2879,7 @@ xfs_mkdir(
|
||||
/*
|
||||
* create the directory inode.
|
||||
*/
|
||||
error = xfs_dir_ialloc(&tp, dp,
|
||||
MAKEIMODE(vap->va_type,vap->va_mode), 2,
|
||||
error = xfs_dir_ialloc(&tp, dp, vap->va_mode, 2,
|
||||
0, credp, prid, resblks > 0,
|
||||
&cdp, NULL);
|
||||
if (error) {
|
||||
@@ -3650,7 +3649,7 @@ xfs_rwlock(
|
||||
vnode_t *vp;
|
||||
|
||||
vp = BHV_TO_VNODE(bdp);
|
||||
if (vp->v_type == VDIR)
|
||||
if (VN_ISDIR(vp))
|
||||
return 1;
|
||||
ip = XFS_BHVTOI(bdp);
|
||||
if (locktype == VRWLOCK_WRITE) {
|
||||
@@ -3681,7 +3680,7 @@ xfs_rwunlock(
|
||||
vnode_t *vp;
|
||||
|
||||
vp = BHV_TO_VNODE(bdp);
|
||||
if (vp->v_type == VDIR)
|
||||
if (VN_ISDIR(vp))
|
||||
return;
|
||||
ip = XFS_BHVTOI(bdp);
|
||||
if (locktype == VRWLOCK_WRITE) {
|
||||
@@ -4567,7 +4566,7 @@ xfs_change_file_space(
|
||||
/*
|
||||
* must be a regular file and have write permission
|
||||
*/
|
||||
if (vp->v_type != VREG)
|
||||
if (!VN_ISREG(vp))
|
||||
return XFS_ERROR(EINVAL);
|
||||
|
||||
xfs_ilock(ip, XFS_ILOCK_SHARED);
|
||||
|
Reference in New Issue
Block a user