aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_log_recover.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2008-11-27 22:23:40 -0500
committerNiv Sardi <xaiki@sgi.com>2008-11-30 19:37:58 -0500
commita1941895034cda2bffa23ba845607c82138ccf52 (patch)
tree604c916884caa4ae2d97e6e47ac0d304cd70d1b4 /fs/xfs/xfs_log_recover.c
parent76d8b277f7b715f78ee3cb09ee112563639693a5 (diff)
[XFS] remove dead code for old inode item recovery
We have removed the support for old-style inode items a while ago and xlog_recover_do_inode_trans is now only called for XFS_LI_INODE items. That means we can remove the call to xfs_imap there and with it the XFS_IMAP_LOOKUP that is set by all other callers. We can also mark xfs_imap static now. (First sent on October 21st) Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <david@fromorbit.com> Signed-off-by: Niv Sardi <xaiki@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_log_recover.c')
-rw-r--r--fs/xfs/xfs_log_recover.c32
1 files changed, 6 insertions, 26 deletions
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
index 48bdfa4dc290..bf8573b5a7d8 100644
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -2245,7 +2245,6 @@ xlog_recover_do_inode_trans(
2245 xfs_inode_log_format_t *in_f; 2245 xfs_inode_log_format_t *in_f;
2246 xfs_mount_t *mp; 2246 xfs_mount_t *mp;
2247 xfs_buf_t *bp; 2247 xfs_buf_t *bp;
2248 xfs_imap_t imap;
2249 xfs_dinode_t *dip; 2248 xfs_dinode_t *dip;
2250 xfs_ino_t ino; 2249 xfs_ino_t ino;
2251 int len; 2250 int len;
@@ -2273,48 +2272,29 @@ xlog_recover_do_inode_trans(
2273 } 2272 }
2274 ino = in_f->ilf_ino; 2273 ino = in_f->ilf_ino;
2275 mp = log->l_mp; 2274 mp = log->l_mp;
2276 if (ITEM_TYPE(item) == XFS_LI_INODE) {
2277 imap.im_blkno = (xfs_daddr_t)in_f->ilf_blkno;
2278 imap.im_len = in_f->ilf_len;
2279 imap.im_boffset = in_f->ilf_boffset;
2280 } else {
2281 /*
2282 * It's an old inode format record. We don't know where
2283 * its cluster is located on disk, and we can't allow
2284 * xfs_imap() to figure it out because the inode btrees
2285 * are not ready to be used. Therefore do not pass the
2286 * XFS_IMAP_LOOKUP flag to xfs_imap(). This will give
2287 * us only the single block in which the inode lives
2288 * rather than its cluster, so we must make sure to
2289 * invalidate the buffer when we write it out below.
2290 */
2291 imap.im_blkno = 0;
2292 error = xfs_imap(log->l_mp, NULL, ino, &imap, 0);
2293 if (error)
2294 goto error;
2295 }
2296 2275
2297 /* 2276 /*
2298 * Inode buffers can be freed, look out for it, 2277 * Inode buffers can be freed, look out for it,
2299 * and do not replay the inode. 2278 * and do not replay the inode.
2300 */ 2279 */
2301 if (xlog_check_buffer_cancelled(log, imap.im_blkno, imap.im_len, 0)) { 2280 if (xlog_check_buffer_cancelled(log, in_f->ilf_blkno,
2281 in_f->ilf_len, 0)) {
2302 error = 0; 2282 error = 0;
2303 goto error; 2283 goto error;
2304 } 2284 }
2305 2285
2306 bp = xfs_buf_read_flags(mp->m_ddev_targp, imap.im_blkno, imap.im_len, 2286 bp = xfs_buf_read_flags(mp->m_ddev_targp, in_f->ilf_blkno,
2307 XFS_BUF_LOCK); 2287 in_f->ilf_len, XFS_BUF_LOCK);
2308 if (XFS_BUF_ISERROR(bp)) { 2288 if (XFS_BUF_ISERROR(bp)) {
2309 xfs_ioerror_alert("xlog_recover_do..(read#2)", mp, 2289 xfs_ioerror_alert("xlog_recover_do..(read#2)", mp,
2310 bp, imap.im_blkno); 2290 bp, in_f->ilf_blkno);
2311 error = XFS_BUF_GETERROR(bp); 2291 error = XFS_BUF_GETERROR(bp);
2312 xfs_buf_relse(bp); 2292 xfs_buf_relse(bp);
2313 goto error; 2293 goto error;
2314 } 2294 }
2315 error = 0; 2295 error = 0;
2316 ASSERT(in_f->ilf_fields & XFS_ILOG_CORE); 2296 ASSERT(in_f->ilf_fields & XFS_ILOG_CORE);
2317 dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); 2297 dip = (xfs_dinode_t *)xfs_buf_offset(bp, in_f->ilf_boffset);
2318 2298
2319 /* 2299 /*
2320 * Make sure the place we're flushing out to really looks 2300 * Make sure the place we're flushing out to really looks