From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linuxfoundation.org ([140.211.169.12]:48692 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752277AbdIRIbm (ORCPT ); Mon, 18 Sep 2017 04:31:42 -0400 Subject: Patch "xfs: ordered buffer log items are never formatted" has been added to the 4.13-stable tree To: hch@lst.de, bfoster@redhat.com, darrick.wong@oracle.com, gregkh@linuxfoundation.org Cc: , From: Date: Mon, 18 Sep 2017 10:31:24 +0200 In-Reply-To: <20170917210631.10725-15-hch@lst.de> Message-ID: <150572348473162@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: This is a note to let you know that I've just added the patch titled xfs: ordered buffer log items are never formatted to the 4.13-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: xfs-ordered-buffer-log-items-are-never-formatted.patch and it can be found in the queue-4.13 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let know about it. >>From foo@baz Mon Sep 18 10:25:08 CEST 2017 From: Christoph Hellwig Date: Sun, 17 Sep 2017 14:06:20 -0700 Subject: xfs: ordered buffer log items are never formatted To: stable@vger.kernel.org Cc: linux-xfs@vger.kernel.org, Brian Foster , "Darrick J . Wong" Message-ID: <20170917210631.10725-15-hch@lst.de> From: Brian Foster commit e9385cc6fb7edf23702de33a2dc82965d92d9392 upstream. Ordered buffers pass through the logging infrastructure without ever being written to the log. The way this works is that the ordered buffer status is transferred to the log vector at commit time via the ->iop_size() callback. In xlog_cil_insert_format_items(), ordered log vectors bypass ->iop_format() processing altogether. Therefore it is unnecessary for xfs_buf_item_format() to handle ordered buffers. Remove the unnecessary logic and assert that an ordered buffer never reaches this point. Signed-off-by: Brian Foster Reviewed-by: Christoph Hellwig Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong Signed-off-by: Greg Kroah-Hartman --- fs/xfs/xfs_buf_item.c | 12 ++---------- fs/xfs/xfs_trace.h | 1 - 2 files changed, 2 insertions(+), 11 deletions(-) --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -323,6 +323,8 @@ xfs_buf_item_format( ASSERT((bip->bli_flags & XFS_BLI_STALE) || (xfs_blft_from_flags(&bip->__bli_format) > XFS_BLFT_UNKNOWN_BUF && xfs_blft_from_flags(&bip->__bli_format) < XFS_BLFT_MAX_BUF)); + ASSERT(!(bip->bli_flags & XFS_BLI_ORDERED) || + (bip->bli_flags & XFS_BLI_STALE)); /* @@ -347,16 +349,6 @@ xfs_buf_item_format( bip->bli_flags &= ~XFS_BLI_INODE_BUF; } - if ((bip->bli_flags & (XFS_BLI_ORDERED|XFS_BLI_STALE)) == - XFS_BLI_ORDERED) { - /* - * The buffer has been logged just to order it. It is not being - * included in the transaction commit, so don't format it. - */ - trace_xfs_buf_item_format_ordered(bip); - return; - } - for (i = 0; i < bip->bli_format_count; i++) { xfs_buf_item_format_segment(bip, lv, &vecp, offset, &bip->bli_formats[i]); --- a/fs/xfs/xfs_trace.h +++ b/fs/xfs/xfs_trace.h @@ -517,7 +517,6 @@ DEFINE_BUF_ITEM_EVENT(xfs_buf_item_size) DEFINE_BUF_ITEM_EVENT(xfs_buf_item_size_ordered); DEFINE_BUF_ITEM_EVENT(xfs_buf_item_size_stale); DEFINE_BUF_ITEM_EVENT(xfs_buf_item_format); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_format_ordered); DEFINE_BUF_ITEM_EVENT(xfs_buf_item_format_stale); DEFINE_BUF_ITEM_EVENT(xfs_buf_item_ordered); DEFINE_BUF_ITEM_EVENT(xfs_buf_item_pin); Patches currently in stable-queue which might be from hch@lst.de are queue-4.13/xfs-open-code-xfs_buf_item_dirty.patch queue-4.13/xfs-properly-retry-failed-inode-items-in-case-of-error-during-buffer-writeback.patch queue-4.13/xfs-use-kmem_free-to-free-return-value-of-kmem_zalloc.patch queue-4.13/xfs-add-infrastructure-needed-for-error-propagation-during-buffer-io-failure.patch queue-4.13/xfs-don-t-set-v3-xflags-for-v2-inodes.patch queue-4.13/xfs-toggle-readonly-state-around-xfs_log_mount_finish.patch queue-4.13/xfs-fix-log-recovery-corruption-error-due-to-tail-overwrite.patch queue-4.13/xfs-move-bmbt-owner-change-to-last-step-of-extent-swap.patch queue-4.13/xfs-check-for-race-with-xfs_reclaim_inode-in-xfs_ifree_cluster.patch queue-4.13/xfs-always-verify-the-log-tail-during-recovery.patch queue-4.13/xfs-open-code-end_buffer_async_write-in-xfs_finish_page_writeback.patch queue-4.13/xfs-relog-dirty-buffers-during-swapext-bmbt-owner-change.patch queue-4.13/xfs-disable-per-inode-dax-flag.patch queue-4.13/xfs-refactor-buffer-logging-into-buffer-dirtying-helper.patch queue-4.13/xfs-fix-recovery-failure-when-log-record-header-wraps-log-end.patch queue-4.13/xfs-skip-bmbt-block-ino-validation-during-owner-change.patch queue-4.13/xfs-don-t-log-dirty-ranges-for-ordered-buffers.patch queue-4.13/xfs-stop-searching-for-free-slots-in-an-inode-chunk-when-there-are-none.patch queue-4.13/xfs-fix-incorrect-log_flushed-on-fsync.patch queue-4.13/xfs-evict-all-inodes-involved-with-log-redo-item.patch queue-4.13/xfs-write-unmount-record-for-ro-mounts.patch queue-4.13/xfs-remove-unnecessary-dirty-bli-format-check-for-ordered-bufs.patch queue-4.13/xfs-disallow-marking-previously-dirty-buffers-as-ordered.patch queue-4.13/xfs-handle-efscorrupted-during-head-tail-verification.patch queue-4.13/xfs-ordered-buffer-log-items-are-never-formatted.patch