From: Brian Foster <bfoster@redhat.com>
To: Dave Chinner <david@fromorbit.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH 11/11] xfs: simplify xfs_zero_remaining_bytes
Date: Mon, 29 Sep 2014 15:09:39 -0400 [thread overview]
Message-ID: <20140929190939.GC35666@bfoster.bfoster> (raw)
In-Reply-To: <1411648461-29003-12-git-send-email-david@fromorbit.com>
On Thu, Sep 25, 2014 at 10:34:21PM +1000, Dave Chinner wrote:
> From: Christoph Hellwig <hch@infradead.org>
>
> xfs_zero_remaining_bytes() open codes a log of buffer manupulations
lot
> to do a read forllowed by a write. It can simply be replaced by an
followed
> uncached read followed by a xfs_bwrite() call.
an
>
> [Christoph, can I get your sign-off for this?]
>
> Signed-off-by: Dave Chinner <david@fromorbit.com>
> ---
Reviewed-by: Brian Foster <bfoster@redhat.com>
> fs/xfs/xfs_bmap_util.c | 44 ++++++++++++++------------------------------
> 1 file changed, 14 insertions(+), 30 deletions(-)
>
> diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c
> index 41d9488..c2aaa58 100644
> --- a/fs/xfs/xfs_bmap_util.c
> +++ b/fs/xfs/xfs_bmap_util.c
> @@ -1122,14 +1122,6 @@ xfs_zero_remaining_bytes(
> if (endoff > XFS_ISIZE(ip))
> endoff = XFS_ISIZE(ip);
>
> - bp = xfs_buf_get_uncached(XFS_IS_REALTIME_INODE(ip) ?
> - mp->m_rtdev_targp : mp->m_ddev_targp,
> - BTOBB(mp->m_sb.sb_blocksize), 0);
> - if (!bp)
> - return -ENOMEM;
> -
> - xfs_buf_unlock(bp);
> -
> for (offset = startoff; offset <= endoff; offset = lastoffset + 1) {
> uint lock_mode;
>
> @@ -1152,32 +1144,24 @@ xfs_zero_remaining_bytes(
> ASSERT(imap.br_startblock != DELAYSTARTBLOCK);
> if (imap.br_state == XFS_EXT_UNWRITTEN)
> continue;
> - XFS_BUF_UNDONE(bp);
> - XFS_BUF_UNWRITE(bp);
> - XFS_BUF_READ(bp);
> - XFS_BUF_SET_ADDR(bp, xfs_fsb_to_db(ip, imap.br_startblock));
>
> - error = xfs_buf_submit_wait(bp);
> - if (error) {
> - xfs_buf_ioerror_alert(bp,
> - "xfs_zero_remaining_bytes(read)");
> - break;
> - }
> + error = xfs_buf_read_uncached(XFS_IS_REALTIME_INODE(ip) ?
> + mp->m_rtdev_targp : mp->m_ddev_targp,
> + xfs_fsb_to_db(ip, imap.br_startblock),
> + BTOBB(mp->m_sb.sb_blocksize),
> + 0, &bp, NULL);
> + if (error)
> + return error;
> +
> memset(bp->b_addr +
> - (offset - XFS_FSB_TO_B(mp, imap.br_startoff)),
> - 0, lastoffset - offset + 1);
> - XFS_BUF_UNDONE(bp);
> - XFS_BUF_UNREAD(bp);
> - XFS_BUF_WRITE(bp);
> + (offset - XFS_FSB_TO_B(mp, imap.br_startoff)),
> + 0, lastoffset - offset + 1);
>
> - error = xfs_buf_submit_wait(bp);
> - if (error) {
> - xfs_buf_ioerror_alert(bp,
> - "xfs_zero_remaining_bytes(write)");
> - break;
> - }
> + error = xfs_bwrite(bp);
> + xfs_buf_relse(bp);
> + if (error)
> + return error;
> }
> - xfs_buf_free(bp);
> return error;
> }
>
> --
> 2.0.0
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
prev parent reply other threads:[~2014-09-29 19:09 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-25 12:34 [PATCH 00/11 v2] xfs: clean up xfs_buf io interfaces Dave Chinner
2014-09-25 12:34 ` [PATCH 01/11] xfs: force the log before shutting down Dave Chinner
2014-09-26 10:37 ` Christoph Hellwig
2014-09-25 12:34 ` [PATCH 02/11] xfs: Don't use xfs_buf_iowait in the delwri buffer code Dave Chinner
2014-09-25 16:19 ` Christoph Hellwig
2014-09-25 12:34 ` [PATCH 03/11] xfs: synchronous buffer IO needs a reference Dave Chinner
2014-09-26 10:11 ` Christoph Hellwig
2014-09-25 12:34 ` [PATCH 04/11] xfs: xfs_buf_ioend and xfs_buf_iodone_work duplicate functionality Dave Chinner
2014-09-26 10:14 ` Christoph Hellwig
2014-09-25 12:34 ` [PATCH 05/11] xfs: rework xfs_buf_bio_endio error handling Dave Chinner
2014-09-26 10:15 ` Christoph Hellwig
2014-09-25 12:34 ` [PATCH 06/11] xfs: kill xfs_bdstrat_cb Dave Chinner
2014-09-25 12:34 ` [PATCH 07/11] xfs: xfs_bioerror can die Dave Chinner
2014-09-26 10:16 ` Christoph Hellwig
2014-09-25 12:34 ` [PATCH 08/11] xfs: kill xfs_bioerror_relse Dave Chinner
2014-09-26 10:18 ` Christoph Hellwig
2014-09-29 19:09 ` Brian Foster
2014-09-25 12:34 ` [PATCH 09/11] xfs: introduce xfs_buf_submit[_wait] Dave Chinner
2014-09-26 12:33 ` Christoph Hellwig
2014-10-01 23:03 ` Dave Chinner
2014-09-25 12:34 ` [PATCH 10/11] xfs: check xfs_buf_read_uncached returns correctly Dave Chinner
2014-09-26 10:21 ` Christoph Hellwig
2014-09-26 23:20 ` [PATCH 10/11 v2] " Dave Chinner
2014-09-29 10:40 ` Christoph Hellwig
2014-09-25 12:34 ` [PATCH 11/11] xfs: simplify xfs_zero_remaining_bytes Dave Chinner
2014-09-26 10:22 ` Christoph Hellwig
2014-09-29 19:09 ` Brian Foster [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140929190939.GC35666@bfoster.bfoster \
--to=bfoster@redhat.com \
--cc=david@fromorbit.com \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.