mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
xfs: split xfs_imap_to_bp
Split looking up the dinode from xfs_imap_to_bp, which can be significantly simplified as a result. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
parent
e773f88029
commit
af9dcddef6
7 changed files with 17 additions and 36 deletions
|
@ -124,37 +124,18 @@ const struct xfs_buf_ops xfs_inode_buf_ra_ops = {
|
|||
/*
|
||||
* This routine is called to map an inode to the buffer containing the on-disk
|
||||
* version of the inode. It returns a pointer to the buffer containing the
|
||||
* on-disk inode in the bpp parameter, and in the dipp parameter it returns a
|
||||
* pointer to the on-disk inode within that buffer.
|
||||
*
|
||||
* If a non-zero error is returned, then the contents of bpp and dipp are
|
||||
* undefined.
|
||||
* on-disk inode in the bpp parameter.
|
||||
*/
|
||||
int
|
||||
xfs_imap_to_bp(
|
||||
struct xfs_mount *mp,
|
||||
struct xfs_trans *tp,
|
||||
struct xfs_imap *imap,
|
||||
struct xfs_dinode **dipp,
|
||||
struct xfs_buf **bpp,
|
||||
uint buf_flags)
|
||||
struct xfs_buf **bpp)
|
||||
{
|
||||
struct xfs_buf *bp;
|
||||
int error;
|
||||
|
||||
buf_flags |= XBF_UNMAPPED;
|
||||
error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, imap->im_blkno,
|
||||
(int)imap->im_len, buf_flags, &bp,
|
||||
return xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, imap->im_blkno,
|
||||
imap->im_len, XBF_UNMAPPED, bpp,
|
||||
&xfs_inode_buf_ops);
|
||||
if (error) {
|
||||
ASSERT(error != -EAGAIN || (buf_flags & XBF_TRYLOCK));
|
||||
return error;
|
||||
}
|
||||
|
||||
*bpp = bp;
|
||||
if (dipp)
|
||||
*dipp = xfs_buf_offset(bp, imap->im_boffset);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline struct timespec64 xfs_inode_decode_bigtime(uint64_t ts)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue