Commit cb7d5859 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Darrick J. Wong

xfs: call xfs_iformat_fork from xfs_inode_from_disk

We always need to fill out the fork structures when reading the inode,
so call xfs_iformat_fork from the tail of xfs_inode_from_disk.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
parent b90c2a9c
...@@ -180,7 +180,7 @@ xfs_imap_to_bp( ...@@ -180,7 +180,7 @@ xfs_imap_to_bp(
return 0; return 0;
} }
void int
xfs_inode_from_disk( xfs_inode_from_disk(
struct xfs_inode *ip, struct xfs_inode *ip,
struct xfs_dinode *from) struct xfs_dinode *from)
...@@ -241,6 +241,8 @@ xfs_inode_from_disk( ...@@ -241,6 +241,8 @@ xfs_inode_from_disk(
to->di_flags2 = be64_to_cpu(from->di_flags2); to->di_flags2 = be64_to_cpu(from->di_flags2);
to->di_cowextsize = be32_to_cpu(from->di_cowextsize); to->di_cowextsize = be32_to_cpu(from->di_cowextsize);
} }
return xfs_iformat_fork(ip, from);
} }
void void
...@@ -641,8 +643,7 @@ xfs_iread( ...@@ -641,8 +643,7 @@ xfs_iread(
* Otherwise, just get the truly permanent information. * Otherwise, just get the truly permanent information.
*/ */
if (dip->di_mode) { if (dip->di_mode) {
xfs_inode_from_disk(ip, dip); error = xfs_inode_from_disk(ip, dip);
error = xfs_iformat_fork(ip, dip);
if (error) { if (error) {
#ifdef DEBUG #ifdef DEBUG
xfs_alert(mp, "%s: xfs_iformat() returned error %d", xfs_alert(mp, "%s: xfs_iformat() returned error %d",
......
...@@ -54,7 +54,7 @@ int xfs_iread(struct xfs_mount *, struct xfs_trans *, ...@@ -54,7 +54,7 @@ int xfs_iread(struct xfs_mount *, struct xfs_trans *,
void xfs_dinode_calc_crc(struct xfs_mount *, struct xfs_dinode *); void xfs_dinode_calc_crc(struct xfs_mount *, struct xfs_dinode *);
void xfs_inode_to_disk(struct xfs_inode *ip, struct xfs_dinode *to, void xfs_inode_to_disk(struct xfs_inode *ip, struct xfs_dinode *to,
xfs_lsn_t lsn); xfs_lsn_t lsn);
void xfs_inode_from_disk(struct xfs_inode *ip, struct xfs_dinode *from); int xfs_inode_from_disk(struct xfs_inode *ip, struct xfs_dinode *from);
void xfs_log_dinode_to_disk(struct xfs_log_dinode *from, void xfs_log_dinode_to_disk(struct xfs_log_dinode *from,
struct xfs_dinode *to); struct xfs_dinode *to);
......
...@@ -89,9 +89,8 @@ xfs_recover_inode_owner_change( ...@@ -89,9 +89,8 @@ xfs_recover_inode_owner_change(
/* instantiate the inode */ /* instantiate the inode */
ASSERT(dip->di_version >= 3); ASSERT(dip->di_version >= 3);
xfs_inode_from_disk(ip, dip);
error = xfs_iformat_fork(ip, dip); error = xfs_inode_from_disk(ip, dip);
if (error) if (error)
goto out_free_ip; goto out_free_ip;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment