[XFS] kill di_mode checks after xfs_iget
Unless XFS_IGET_CREATE is passed xfs_iget will return ENOENT if it encounters an inode with di_mode == 0. Remove the duplicated checks in the callers. (the log recovery case is not touched for now) SGI-PV: 976035 SGI-Modid: xfs-linux-melb:xfs-kern:30898a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
This commit is contained in:
committed by
Lachlan McIlroy
parent
4e5dbb3498
commit
6a7f422d47
@@ -133,7 +133,7 @@ xfs_nfs_get_inode(
|
|||||||
if (!ip)
|
if (!ip)
|
||||||
return ERR_PTR(-EIO);
|
return ERR_PTR(-EIO);
|
||||||
|
|
||||||
if (!ip->i_d.di_mode || ip->i_d.di_gen != generation) {
|
if (ip->i_d.di_gen != generation) {
|
||||||
xfs_iput_new(ip, XFS_ILOCK_SHARED);
|
xfs_iput_new(ip, XFS_ILOCK_SHARED);
|
||||||
return ERR_PTR(-ENOENT);
|
return ERR_PTR(-ENOENT);
|
||||||
}
|
}
|
||||||
|
@@ -238,7 +238,7 @@ xfs_vget_fsop_handlereq(
|
|||||||
return error;
|
return error;
|
||||||
if (ip == NULL)
|
if (ip == NULL)
|
||||||
return XFS_ERROR(EIO);
|
return XFS_ERROR(EIO);
|
||||||
if (ip->i_d.di_mode == 0 || ip->i_d.di_gen != igen) {
|
if (ip->i_d.di_gen != igen) {
|
||||||
xfs_iput_new(ip, XFS_ILOCK_SHARED);
|
xfs_iput_new(ip, XFS_ILOCK_SHARED);
|
||||||
return XFS_ERROR(ENOENT);
|
return XFS_ERROR(ENOENT);
|
||||||
}
|
}
|
||||||
|
@@ -1737,12 +1737,6 @@ xfs_qm_dqusage_adjust(
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ip->i_d.di_mode == 0) {
|
|
||||||
xfs_iput_new(ip, XFS_ILOCK_EXCL);
|
|
||||||
*res = BULKSTAT_RV_NOTHING;
|
|
||||||
return XFS_ERROR(ENOENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Obtain the locked dquots. In case of an error (eg. allocation
|
* Obtain the locked dquots. In case of an error (eg. allocation
|
||||||
* fails for ENOSPC), we return the negative of the error number
|
* fails for ENOSPC), we return the negative of the error number
|
||||||
|
@@ -1366,12 +1366,6 @@ xfs_qm_internalqcheck_adjust(
|
|||||||
return (error);
|
return (error);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ip->i_d.di_mode == 0) {
|
|
||||||
xfs_iput_new(ip, lock_flags);
|
|
||||||
*res = BULKSTAT_RV_NOTHING;
|
|
||||||
return XFS_ERROR(ENOENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This inode can have blocks after eof which can get released
|
* This inode can have blocks after eof which can get released
|
||||||
* when we send it to inactive. Since we don't check the dquot
|
* when we send it to inactive. Since we don't check the dquot
|
||||||
|
@@ -71,11 +71,6 @@ xfs_bulkstat_one_iget(
|
|||||||
|
|
||||||
ASSERT(ip != NULL);
|
ASSERT(ip != NULL);
|
||||||
ASSERT(ip->i_blkno != (xfs_daddr_t)0);
|
ASSERT(ip->i_blkno != (xfs_daddr_t)0);
|
||||||
if (ip->i_d.di_mode == 0) {
|
|
||||||
*stat = BULKSTAT_RV_NOTHING;
|
|
||||||
error = XFS_ERROR(ENOENT);
|
|
||||||
goto out_iput;
|
|
||||||
}
|
|
||||||
|
|
||||||
vp = XFS_ITOV(ip);
|
vp = XFS_ITOV(ip);
|
||||||
dic = &ip->i_d;
|
dic = &ip->i_d;
|
||||||
@@ -124,7 +119,6 @@ xfs_bulkstat_one_iget(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
out_iput:
|
|
||||||
xfs_iput(ip, XFS_ILOCK_SHARED);
|
xfs_iput(ip, XFS_ILOCK_SHARED);
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user