diff options
author | Christoph Hellwig <hch@infradead.org> | 2008-04-22 03:33:40 -0400 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-04-29 01:53:31 -0400 |
commit | 6a7f422d47d4af461704ebb9d7a389d9e59766b2 (patch) | |
tree | c51e1c699c364bbd09d36e2de3609619bac50c0d /fs/xfs | |
parent | 4e5dbb3498e74514b9936d691413afc55fb84ea9 (diff) |
[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>
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_export.c | 2 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_ioctl.c | 2 | ||||
-rw-r--r-- | fs/xfs/quota/xfs_qm.c | 6 | ||||
-rw-r--r-- | fs/xfs/quota/xfs_qm_syscalls.c | 6 | ||||
-rw-r--r-- | fs/xfs/xfs_itable.c | 6 |
5 files changed, 2 insertions, 20 deletions
diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c index 265f0168ab76..c672b3238b14 100644 --- a/fs/xfs/linux-2.6/xfs_export.c +++ b/fs/xfs/linux-2.6/xfs_export.c | |||
@@ -133,7 +133,7 @@ xfs_nfs_get_inode( | |||
133 | if (!ip) | 133 | if (!ip) |
134 | return ERR_PTR(-EIO); | 134 | return ERR_PTR(-EIO); |
135 | 135 | ||
136 | if (!ip->i_d.di_mode || ip->i_d.di_gen != generation) { | 136 | if (ip->i_d.di_gen != generation) { |
137 | xfs_iput_new(ip, XFS_ILOCK_SHARED); | 137 | xfs_iput_new(ip, XFS_ILOCK_SHARED); |
138 | return ERR_PTR(-ENOENT); | 138 | return ERR_PTR(-ENOENT); |
139 | } | 139 | } |
diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index 4ddb86b73c6b..98e87804991d 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c | |||
@@ -238,7 +238,7 @@ xfs_vget_fsop_handlereq( | |||
238 | return error; | 238 | return error; |
239 | if (ip == NULL) | 239 | if (ip == NULL) |
240 | return XFS_ERROR(EIO); | 240 | return XFS_ERROR(EIO); |
241 | if (ip->i_d.di_mode == 0 || ip->i_d.di_gen != igen) { | 241 | if (ip->i_d.di_gen != igen) { |
242 | xfs_iput_new(ip, XFS_ILOCK_SHARED); | 242 | xfs_iput_new(ip, XFS_ILOCK_SHARED); |
243 | return XFS_ERROR(ENOENT); | 243 | return XFS_ERROR(ENOENT); |
244 | } | 244 | } |
diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index 40ea56409561..fb624a17f15b 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c | |||
@@ -1737,12 +1737,6 @@ xfs_qm_dqusage_adjust( | |||
1737 | return error; | 1737 | return error; |
1738 | } | 1738 | } |
1739 | 1739 | ||
1740 | if (ip->i_d.di_mode == 0) { | ||
1741 | xfs_iput_new(ip, XFS_ILOCK_EXCL); | ||
1742 | *res = BULKSTAT_RV_NOTHING; | ||
1743 | return XFS_ERROR(ENOENT); | ||
1744 | } | ||
1745 | |||
1746 | /* | 1740 | /* |
1747 | * Obtain the locked dquots. In case of an error (eg. allocation | 1741 | * Obtain the locked dquots. In case of an error (eg. allocation |
1748 | * fails for ENOSPC), we return the negative of the error number | 1742 | * fails for ENOSPC), we return the negative of the error number |
diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c index 8342823dbdc3..768a3b27d2b6 100644 --- a/fs/xfs/quota/xfs_qm_syscalls.c +++ b/fs/xfs/quota/xfs_qm_syscalls.c | |||
@@ -1366,12 +1366,6 @@ xfs_qm_internalqcheck_adjust( | |||
1366 | return (error); | 1366 | return (error); |
1367 | } | 1367 | } |
1368 | 1368 | ||
1369 | if (ip->i_d.di_mode == 0) { | ||
1370 | xfs_iput_new(ip, lock_flags); | ||
1371 | *res = BULKSTAT_RV_NOTHING; | ||
1372 | return XFS_ERROR(ENOENT); | ||
1373 | } | ||
1374 | |||
1375 | /* | 1369 | /* |
1376 | * This inode can have blocks after eof which can get released | 1370 | * This inode can have blocks after eof which can get released |
1377 | * when we send it to inactive. Since we don't check the dquot | 1371 | * when we send it to inactive. Since we don't check the dquot |
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c index eb85bdedad0c..419de15aeb43 100644 --- a/fs/xfs/xfs_itable.c +++ b/fs/xfs/xfs_itable.c | |||
@@ -71,11 +71,6 @@ xfs_bulkstat_one_iget( | |||
71 | 71 | ||
72 | ASSERT(ip != NULL); | 72 | ASSERT(ip != NULL); |
73 | ASSERT(ip->i_blkno != (xfs_daddr_t)0); | 73 | ASSERT(ip->i_blkno != (xfs_daddr_t)0); |
74 | if (ip->i_d.di_mode == 0) { | ||
75 | *stat = BULKSTAT_RV_NOTHING; | ||
76 | error = XFS_ERROR(ENOENT); | ||
77 | goto out_iput; | ||
78 | } | ||
79 | 74 | ||
80 | vp = XFS_ITOV(ip); | 75 | vp = XFS_ITOV(ip); |
81 | dic = &ip->i_d; | 76 | dic = &ip->i_d; |
@@ -124,7 +119,6 @@ xfs_bulkstat_one_iget( | |||
124 | break; | 119 | break; |
125 | } | 120 | } |
126 | 121 | ||
127 | out_iput: | ||
128 | xfs_iput(ip, XFS_ILOCK_SHARED); | 122 | xfs_iput(ip, XFS_ILOCK_SHARED); |
129 | return error; | 123 | return error; |
130 | } | 124 | } |